Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vortrag - Rolf Heitzenröder1 Bubbelsort und Quicksort Vortrag von Rolf Heitzenröder Sortieren von Arrays.

Ähnliche Präsentationen


Präsentation zum Thema: "Vortrag - Rolf Heitzenröder1 Bubbelsort und Quicksort Vortrag von Rolf Heitzenröder Sortieren von Arrays."—  Präsentation transkript:

1 Vortrag - Rolf Heitzenröder1 Bubbelsort und Quicksort Vortrag von Rolf Heitzenröder Sortieren von Arrays

2 Vortrag - Rolf Heitzenröder2 Sortieralgorithmen Wann muß man Arrays sortieren? 4 Die Objekte liegen nicht in der definierten Reihenfolge. Mit was kann man die Objekte sortieren? 4 Mit geeigneten Algorithmen. Wie wird sortiert? 4 In dem die einzelnen Elemente miteinander verglichen und gegebenenfalls ausgetauscht werden. Dies leisten, z.B. die Algorithmen: Bubbelsort und Quicksort

3 Vortrag - Rolf Heitzenröder3 Bubbelsort Der Bubbelsort beruht auf das fortgesetzte Vergleichen und Austauschen von Paaren nebeneinanderliegender Elemente, bis alle Elemente sortiert sind. Die Methode (der direkten Auswahl) durchläuft das Array mehrmals und läßt jedesmal das kleinste Element der restlichen Menge zum linken Rand des Arrays wandern. Dreht man das Array im Gedanken um 90° mit dem Uhrzeiger- sinn, so erscheinen die Elemente wie Luftblasen (bubbels) aufzusteigen.

4 Vortrag - Rolf Heitzenröder4 Bubbelsort Zu sortierender Vektor: {15,14, 18, 12, 7, 9, 8, 10, 13, 1} 1.Durchlauf Vergleichen der letzten beiden Elemente. Ist das vorletzte Element größer als das Letzte, dann wird es mit ihm vertauscht. 2.Durchlauf Jetzt wird das nächst höhere Element mit dem Vertauschten geprüft. Ist das untere Element ebenfalls wieder kleiner, so wird es wieder mit der Position des vorher- gehenden Elements ge- tauscht.

5 Vortrag - Rolf Heitzenröder5 Bubbelsort Nach jedem Druchgang wandert die in unserem Beispiel die 1, immer ein Element nach oben, wie eine Luft- blase. Danach wird die erste Stelle gemerkt, und eine Reihe weitere Durchläufe wird gestartet. Bis alle Elemente des Vektors in der richtigen Reihenfolge sich befinden.

6 Vortrag - Rolf Heitzenröder6 Bubbelsort public static void BubbleSort(double[] a) { double h = 0; for (int i=0; i < a.length; i++) { for (int j=a.length-1; j > i; j--) { if (a[j-1] > a[j]) { h = a[j-1]; a[j-1] = a[j]; a[j] = h; } } }

7 Vortrag - Rolf Heitzenröder7 Quicksort Erfinder C. A. R. Hoare Quicksort entfaltet seine Leistungsfähigkeit in dem Austausch über größere Distanzen. Der Algrith. Zerlegt (Partitioniert) das Array zuerst in zwei Intervalle. Das rechte, wie das linke Intervall beginnen jeweils am rechten bzw. linken Rand des Array. Nach jeden Vergleich und Austausch werden die beiden Intervalle um ein Element erhöht bzw. erniedrigt. Nach einen Durchlauf werden die beiden Intervalle rekursiv mit Quicksort weiter behandelt und damit wieder unterteilt. Bis die Intervalle nur noch ein Element enthalten.

8 Vortrag - Rolf Heitzenröder8 Quicksort public static void QuickSort(double[] v) { QuickSort(v, 0, v.length); } public static void QuickSort(double[] a, int l, int r) { int i = 0; int j = 0; double x = 0; double h = 0; i = l; j = r-1; x = a[(l+r)/2];

9 Vortrag - Rolf Heitzenröder9 Quicksort do { while (a[i] < x) { i++; } while (x < a[j]) { j--; } if (i <= j) { h = a[i]; a[i] = a[j]; a[j] = h; i++; j--; } } while (i <= j); if (l < j) QuickSort(a, l, j); if (i < r) QuickSort(a, i, r); }


Herunterladen ppt "Vortrag - Rolf Heitzenröder1 Bubbelsort und Quicksort Vortrag von Rolf Heitzenröder Sortieren von Arrays."

Ähnliche Präsentationen


Google-Anzeigen