Ben: Sortieralgorithmus der sort()-Fkt. für Arrays

Hallo zusammen

Ich möchte die Elemente eines Array zufällig anordnen. Dabei bin ich auf folgende Lösung gestossen:

  
function randOrd(){  
return (Math.round(Math.random())-0.5); }  
  
anyArray.sort( randOrd );  

Es funktioniert zwar, ich habe mir jedoch die Frage gestellt, welchen Algorithmus JS verwendet, um zu sortieren. Wenn ja z.B. Bubble-Sort verwendet wird (was ich aus Performance-Gründen nicht annehme), und bei jedem Vergleichen (auch wenn es dieselben Elemente 2 mal verglichen werden) eine andere Reihenfolge durch die Zufallszahl rauskommt, könnte es ja passieren, dass er niemals fertig wird? Oder sehe ich da etwas falsch?

Danke für die Antworten & Gruss
Ben

  1. Hallo Ben,

    http://forum.de.selfhtml.org/archiv/2007/12/t163655/

    oder nach "Array Mischen" oder "Array Shuffle" suchen.

    Gruß, Jürgen

  2. Moin!

    Es funktioniert zwar, ich habe mir jedoch die Frage gestellt, welchen Algorithmus JS verwendet, um zu sortieren. Wenn ja z.B. Bubble-Sort verwendet wird (was ich aus Performance-Gründen nicht annehme), und bei jedem Vergleichen (auch wenn es dieselben Elemente 2 mal verglichen werden) eine andere Reihenfolge durch die Zufallszahl rauskommt, könnte es ja passieren, dass er niemals fertig wird? Oder sehe ich da etwas falsch?

    Das siehst du richtig. Viele Sortierfunktionen, die eine vom Programmierer definierte Vergleichsfunktion akzeptieren, sind darauf angewiesen, dass diese Funktion deterministisch arbeitet.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."