Anonymous user
Sorting algorithms/Strand sort: Difference between revisions
Small changes in D entry
m (→{{header|D}}) |
(Small changes in D entry) |
||
Line 103:
<lang d>import std.stdio, std.range, std.container, std.algorithm;
DList!T
while (!left.empty && !right.empty) {
if (left.front <= right.front) {
left.removeFront();
} else {
right.removeFront();
}
}
return
}
DList!T result, sorted;
while (!list.empty) {
sorted.clear();
Line 128 ⟶ 129:
if (sorted.back <= item) {
sorted.insertBack(item);
list.stableLinearRemove
}
}
result = merge(sorted, result);
}
return result;
}
Line 138 ⟶ 140:
void main() {
auto lst = DList!int([-2,0,-2,5,5,3,-1,-3,5,5,0,2,-4,4,2]);
foreach (e; strandSort(lst))
writef("%d ", e);
}</lang>
{{out}}
<pre>-4 -3 -2 -2 -1 -1 0 0 0 2 2 3 4 5 5 5 5 </pre>
=={{header|Clojure}}==
|