Sorting algorithms/Sleep sort: Difference between revisions

Content added Content deleted
(→‎{{header|D}}: Simplify D sleep sort implementation)
Line 255:
 
=={{header|D}}==
}</lang d>
<lang d>import std.stdio, std.conv, std.datetime, std.array, core.thread;
import core.thread, std.concurrency, std.datetime,
std.stdio, std.algorithm, std.conv;
 
void main(in string[] args) {
final class SleepSorter: Thread {
{
private immutable uint val;
if (!args.emptylength)
return;
 
foreach (const argnumber; args[1 .. $].map!(to!uint))
this(in uint n) /*pure nothrow @safe*/ {
superspawn(&run(uint num); {
val = n Thread.sleep(dur!"msecs"(10 * num));
writef("%d ", valnum);
}
}, number);
 
private void runthread_joinAll() {;
Thread.sleep(dur!"msecs"(1000 * val));
writef("%d ", val);
}
}
 
</lang>
void main(in string[] args) {
if (!args.empty)
foreach (const arg; args[1 .. $])
new SleepSorter(arg.to!uint).start;
}</lang>
{{out}}
<pre>sorting_algorithms_sleep_sort 1 6 2 5 3 4