Anonymous user
Sorting algorithms/Strand sort: Difference between revisions
Small improvements in second D entry
(→Faster version using slices: missing imports) |
(Small improvements in second D entry) |
||
Line 281:
=== Faster version using slices ===
<lang d>import std.stdio, std.
T[] strandSort(T)(/*in*/ T[] list) pure nothrow {
static T[] merge(T[] left, T[] right) pure nothrow {
T[]
while (!left.empty && !right.empty) {
if (left.front <= right.front) {
left
} else {
right
}
}
return
}
T[] result
while (!list.empty) {
foreach (item; list)
result = merge(sorted, result);
list = leftover;
}
return result;
}
Line 318 ⟶ 314:
void main() {
auto arr = [-2,0,-2,5,5,3,-1,-3,5,5,0,2,-4,4,2];
arr.strandSort.writeln;
}</lang>
{{out}}
<pre>[-4, -3, -2, -2, -1, 0, 0, 2, 2, 3, 4, 5, 5, 5, 5
=={{header|Euphoria}}==
|