Sortieralgorithmen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

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

<code id="5b1e50a5b44ed">
// 100 zufällige Zahlen
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){
  // 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; else return BogoSort(r);  
}

BogoSort(Liste);
</run>