Sortieralgorithmen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
Zwei sehr unterschiedliche Sortierverfahren im Vergleich:

<code id="5b1e50a5b44ed">
// Eine Liste mit 10 zufällige Zahlen soll aufsteigend sortiert werden
var Liste = [
  81, 98, 73, 80, 3, 56, 65, 42, 97, 55
];
</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
    for(var i =0; i < a.length; i++){
      var rand = Math.floor(Math.random() * a.length);
      var tmp = a[i]; 
      a[i] = a[rand]; 
      a[rand] = tmp;
    }    // auf geordnet überprüfen
    var geordnet = true;
    var zuletzt = -1;
    for(var i=0; i < a.length; i++){
      if(zuletzt > a[i]) {
        geordnet = false; 
        break;
      }
      zuletzt = a[i];
    }
    // wenn geordnet, ergebnis zurückgeben, sonst nochmal probieren
    if(geordnet) return a; 
  }
}

var start = new Date();
console.log(BogoSort(Liste));
var ende = new Date();
console.log("Zeit: "+(ende.getTime() - start.getTime())+ " ms");
</run>