@brikler: Schon klar, ich hab's auf die Sortierroutine bezogen - bei meinem Vorschlag werden die Zahlen bereits passend in ein Array aufsteigend sortiert eingefügt - also kein zusätzliches "sort" erforderlich.
@TBone:
Zitat:
Muss man danach wirklich nicht mehr sortieren? Angenommen die 713 kommt nicht vor, dafür die 261 doppelt. Dann steht dort eine 0, an der anderen Stelle eine 2. Ist doch trotzdem nicht sortiert?
Dein Beispiel hab' ich mal codiert, kann also leicht mit gcc nachgeprüft werden: 🙂
#include <stdio.h>
void main() {
int i, ii;
int Z[1000];
// Initialisierung lt. TBones Beispiel:
for (i=0; i<1000; i++) Z[i]=1;
Z[261]=2;
Z[713]=0;
// Init Ende
// Alle 'Zufallszahlen' ausgeben:
for (i=0; i<1000; i++) {
if (Z[i] == 0) continue;
for (int ii=0; ii<Z[i]; ii++) printf("%d ", i);
}
puts("");
}
Ausgabe dann entsprechend Deinem Beispiel:
0 1 2 3 4 5 ... 259 260 261 261 262 ... 710 711 712 714 715 716 ...
Also alles sortiert wie gewünscht, aber eben ohne eine Sortroutine 😉
Ich denke, so geht's schneller und einfacher.
Gruß, LW