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>