Sort/Bubblesort
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
<h1>Funktionsweise</h1>
<ul>
<li>Kernpunkt ist das "Aufsteigen" des (im aktuellen Durchlauf) höchsten Elements zur jeweils höchsten Stelle</li>
<li>Im ersten Durchlauf wird Array komplett durchlaufen, das größte Element wandert an die letzte Stelle des Arrays</li>
<li>Im zweiten Durchlauf erfolgt die Suche nach dem größten Element nur noch bis zum vorletzten Element. An diese Stelle kommt das größte gefundene Element</li>
<li>Prozedere setzt sich fort, im vorletzten Durchlauf höchstens vertauschen der ersten beiden Elemente</li>
<li>Optimierung: Prozedere abbrechen, sobald in einem Durchlauf kein Tausch stattgefunden hat (dann ist das Array sortiert)</li>
</ul>
<h1>Implementierung</h1>
<run id="5f02412a957f9">
function bubbleSort(zahlen) {
for (var i = zahlen.length - 2; i >= 0; i--) {
for (var j = 0; j <= i; j++) {
if (zahlen[j] > zahlen[j + 1]) {
// Vertauschen der beiden Zahlen, falls Vorgänger größer ist
var hilf = zahlen[j];
zahlen[j] = zahlen[j + 1];
zahlen[j + 1] = hilf;
}
}
}
return zahlen;
}
console.log(bubbleSort([3, 2, 6, 1, 4, 5]));
</run>