Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sortieralgorithmen Sortieren von Arrays. Sortierverfahren 1.Sortieren durch direktes Auswählen Selection Sort Selection Sort 2.Sortieren durch direktes.

Ähnliche Präsentationen


Präsentation zum Thema: "Sortieralgorithmen Sortieren von Arrays. Sortierverfahren 1.Sortieren durch direktes Auswählen Selection Sort Selection Sort 2.Sortieren durch direktes."—  Präsentation transkript:

1 Sortieralgorithmen Sortieren von Arrays

2 Sortierverfahren 1.Sortieren durch direktes Auswählen Selection Sort Selection Sort 2.Sortieren durch direktes Einfügen Insertion Sort Insertion Sort 3.Sortieren durch direktes Austauschen Bubble Sort Bubble Sort 4.Sortieren durch Zerlegen Quicksort Quicksort

3 Selection Sort 1 alternative Bezeichnungen: Sortieren durch Austauschen, Sortieren durch Auswählen Idee – Suche zunächst das kleinste, danach das zweitkleinste Item usw. – Stelle damit sukzessiv eine sortierte Liste auf.

4 Selection Sort 2 Methode – Wähle unter A[1], A[2],....., A[N] das kleinste Item. – Vertausche A[1] mit diesem; damit hat es seinen endgültigen Platz. – Verfahre mit der Restliste A[2],....., A[N] entsprechend usw.

5 Selection Sort 3 Programm FOR i:=1 TO n-1 DO BEGIN weise x das kleinste Element von a[i]..a[n] zu, weise seinen Index k zu; Vertausche a[i] und a[k] END.

6 Selection Sort 4 Anfangs werte i= i= i= i= i= i= i=

7 Selection Sort 5 Effizienzanalyse Die Zahl C der Vergleiche der Schlüssel ist unabhängig von der ursprünglichen Ordnung: C = (n 2 –n)/2 Die Zahl M der Bewegungen ist mindestens M [min] = 3*(n-1) bei ursprünglich geordneten Schlüsseln, und höchstens M [max] = trunc(n 2 /4) + 3*(n-1), falls die Schlüssel ursprünglich in umgekehrter Reihenfolge sind. Im Mittel erhalten wir: M [mit] = n*(ln n + 0,57)

8 Insertion Sort 1 alternative Bezeichnung: Sortieren durch Einfügen Idee – Beginne mit dem ersten Item als bereits sortierter Teil-Liste. – Ordne das erste Item der unsortierten Restliste in die sortierte Teilliste ein.

9 Insertion Sort 2 Methode – Bilde mit A[1] eine erste sortierte Teil-Liste. – Füge A[2] darin so ein, daß die erweiterte Teil-Liste wieder sortiert ist. – Wenn A[1], A[2],....., A[k] eine sortierte Teil-Liste sind, dann füge A[k+1] ein.

10 Insertion Sort 3 Programm FOR i:=2 TO n DO BEGIN x:=a[i]; füge x am entsprechenden Platz in a[1]..a[n] ein END.

11 Insertion Sort 4 Anfangs werte i= i= i= i= i= i= i=

12 Insertion Sort 5 Effizienzanalyse Die Zahl C[i] der Vergleiche von Schlüsseln ist höchstens i-1 und somit – unter Annahme, dass alle Permutationen gleich wahrscheinlich sind – im Mittel i/2. Die Zahl M[i] der Bewegungen ist C[i]+2 (inkl. Marke): C [min] = n-1M [min] = 3*(n-1) C [max] = ((n 2 + n)/2) – 1M [max] = (n2 + 3n-4)/2 C [mit] = (n 2 + n-2)/4M [mit] = (n2 + 9n-10)/4 Die kleinsten Zahlen kommen bei bereits geordneten Elementen vor; die schlimmsten Fälle treten ein, wenn die Elemente zu Beginn in umgekehrter Reihenfolge angeordnet sind (natürliches Verhalten).

13 Bubble Sort 1 alternative Bezeichnung: Sortieren durch lokales Vertauschen Idee – Durch Vertauschen zweier Nachbarn, die nicht in der richtigen Reihenfolge stehen, wird der Sortierzustand besser. – Mache das so oft, bis die Liste sortiert ist.

14 Bubble Sort 2 Methode – Durchlaufe die Liste von links nach rechts. – Wenn dabei A[i] und A[i+1] in falscher Reihenfolge stehen, vertausche sie. – Wiederhole das solange bis die Liste sortiert ist.

15 Bubble Sort 3 Anfangs werte i= i= i= i= i= i= i=

16 Bubble Sort 4 Effizienzanalyse Zahl der Vergleiche: C = (n 2 – n)/2 Zahl der Bewegungen: M [min] = 0 M [max] = 3*(n 2 - n)/2 M [mit] = 3*(n 2 - n)/4

17 Quicksort 1 alternative Bezeichnungen: Vertauschen über große Entfernungen, Partition Exchange Sort Idee – Divide et Impera-Prinzip: – Zerlegung in eine Liste mit allen "kleinen" und eine Liste mit allen "großen" Items – Sortiere beide Teil-Listen getrennt (rekursiv nach dem selben Prinzip) – Baue aus den Teilen wieder eine Gesamtliste zusammen

18 Quicksort 2 Methode – Wähle unter A[1], A[2],....., A[N] ein Pivot-Element p aus. – Zerlege mit p die Liste in zwei Teil-Listen L1 und L2 – Liste L1 enthält nur Items A[i] < p – Liste L2 enthält nur Items A[i] > p

19 Quicksort 3 Methode (Fortsetzung) – Nach der Zerlegung wird das Pivot-Element zwischen L1 und L2 gestellt. Es hat dort seinen endgültigen Platz erreicht. – Die beiden Teil-Listen werden rekursiv nach dem selben Verfahren sortiert. – Zur Zusammenfassung der Teil-Listen sind keine weiteren Maßnahmen nötig.

20 Quicksort 4 Wahl des Pivot-Elements p – Wunsch: p so wählen, daß die Teil-Listen gleich groß werden. – häufige Methoden zur Wahl von p: letztes Item erstes Item zufällig gewähltes Item Median von drei Items, z.B. von A[1], A[N/2] und A[N]

21 Quicksort 5 Effizienzanalyse Zahl der Vergleiche im günstigsten Fall: C = n*log(n) Zahl der Bewegungen im günstigsten Fall: M = (n*log(n )/6 Natürlich kann man nicht immer erwarten, immer das mittlere Element zu treffen (Wahrscheinlichkeit = 1/n). Bei zufälliger Wahl der Grenze ist die Leistung von Quicksort aber nur um den Faktor 2*ln(2) = 1,39 schlechter als im besten Fall!

22 Ein Vergleich der Sortiermethoden Selection Sort C [mit](n 2 –n)/2 M [mit]n*(ln n + 0,57) Insertion Sort C [mit](n 2 +n-2)/2 M [mit](n 2 –9n -10)/4 Bubble Sort C [mit](n 2 -n)/2 M [mit](n 2 -n)*0,75 Quick Sort C [mit]n*log(n)*1,39 M [mit](n*log(n))/6

23 Sortieralgorithmen im Internet Informatikseite von Andreas Rittershofer Oldenburger Lernprogramme zur Informatik (OLLI) Sortierverfahren MathPrism

24 Literatur Sedgewick, Robert: Algorithmen, Addison-Wesley Wirth, Niklaus: Algorithmen und Datenstrukturen, B.G.Teubner, Stuttgart-Leipzig-Wiesbaden.


Herunterladen ppt "Sortieralgorithmen Sortieren von Arrays. Sortierverfahren 1.Sortieren durch direktes Auswählen Selection Sort Selection Sort 2.Sortieren durch direktes."

Ähnliche Präsentationen


Google-Anzeigen