Sortieralgorithmen
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
Zwei sehr unterschiedliche Sortierverfahren im Vergleich:
<code id="5b1e50a5b44ed">
// Eine Liste mit 100 zufällige Zahlen soll aufsteigend sortiert werden
var Liste = [
70, 73, 48, 13, 37, 58, 71, 96, 71, 9, 49, 75, 53,
51, 69, 55, 10, 11, 56, 68, 55, 88, 94, 14, 84, 85,
18, 77, 72, 85, 1, 10, 14, 97, 62, 22, 6, 51, 32, 41, 62,
81, 98, 73, 80, 3, 56, 65, 42, 97, 55, 43, 8, 39, 14,
73, 91, 62, 6, 62, 37, 78, 59, 84, 2, 92, 41, 59, 60, 30,
2, 15, 92, 18, 36, 73, 42, 44, 7, 49, 17, 75, 42, 79, 97, 7,
53, 94, 99, 76, 100, 49, 39, 67, 25, 5, 32, 55, 38, 90
];
</code>
== Bogo Sort ==
Es wird solange zufällige sortiert, bis die Liste geordnet ist.
<run id="5b1e50a5b4595">
function BogoSort(a){
while(true){
// zufällig ordnen
var r = [];
for(var i=0; i < a.length; i++){
if(Math.random() > 0.5) r.push(a[i]); else r.unshift(a[i]);
}
// auf geordnet überprüfen
var geordnet = true;
var zuletzt = -1;
for(var i=0; i < r.length; i++){
if(zuletzt > r[i]) {
geordnet = false;
break;
}
zuletzt = r[i];
}
// wenn geordnet, ergebnis zurückgeben, sonst nochmal probieren
if(geordnet) return r;
}
}
BogoSort(Liste);
</run>