Sorting algorithms/Counting sort: Difference between revisions

Content added Content deleted
(Go solution)
(Cleaned D code)
Line 242: Line 242:


=={{header|D}}==
=={{header|D}}==
<lang d>import std.stdio: writeln;
<lang d>import std.stdio, std.algorithm;
import std.algorithm: reduce, min, max;


void countingSort(int[] array, in size_t min, in size_t max) {
void countingSort(int[] array, in size_t min, in size_t max) {
Line 260: Line 259:


void main() {
void main() {
auto data = [9, 7, 10, 2, 9, 7, 4, 3, 10, 2, 7, 10,
auto data = [9, 7, 10, 2, 9, 7, 4, 3, 10, 2, 7, 10, 2, 1, 3, 8,
2, 1, 3, 8, 7, 3, 9, 5, 8, 5, 1, 6, 3,
7, 3, 9, 5, 8, 5, 1, 6, 3, 7, 5, 4, 6, 9, 9, 6, 6,
7, 5, 4, 6, 9, 9, 6, 6, 10, 2, 4, 5,
10, 2, 4, 5, 2, 8, 2, 2, 5, 2, 9, 3, 3, 5, 7, 8, 4];
2, 8, 2, 2, 5, 2, 9, 3, 3, 5, 7, 8, 4];


int dataMin = reduce!min(data);
int dataMin = reduce!min(data);
int dataMax = reduce!max(data);
int dataMax = reduce!max(data);
countingSort(data, dataMin, dataMax);
countingSort(data, dataMin, dataMax);
writeln("Sorted: ", data);
assert(isSorted(data));
}</lang>
}</lang>