Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmen und Datenstrukturen

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmen und Datenstrukturen"—  Präsentation transkript:

1 Algorithmen und Datenstrukturen
Dipl. Inform. Andreas Wilkens

2 Suchalgorithmen Definition “Suchen”: Unter Suchen versteht man das Auffinden eines bestimmten Datums in einer gegebenen Datenmenge anhand eines Suchkriteriums, des sogenannten Suchschlüssels.

3 Suchalgorithmen Für die Wahl eines bestimmten Suchalgorithmus ist es wichtig zu wissen, ob der zu durchsuchende Datenbestand bereits sortiert vorliegt oder nicht. Weiterhin ist es wichtig zu wissen, ob die zu durchsuchenden Schlüsselwerte mehrfach in verschiedenen Datensätzen vorkommen dürfen oder ob sie eindeutig im gesamten Datenbestand sind.

4 Sequentielles Suchen sequentiell = aufeinanderfolgend Verfahren:
Gesamter Datenbestand wird nacheinander mit dem Suchschlüssel verglichen bis entweder der Vergleich erfolgreich war oder alle Datensätze verarbeitet wurden. Geeignet für unsortierte und sortierte Datenbestände.

5 Sequentielle Suche Beispiel 3 15 7 99 87 54 50 94 55 89 4 23 1 2 19
Wenn “54” gesucht wird, dann müssen 6 Vergleiche durchgeführt werden. Wenn “19” gesucht wird, dann müssen 15 Vergleiche durchgeführt werden. Wenn “20” gesucht wird, müssen ebenfalls 15 Vergleiche durchgeführt werden, anschließend steht fest, dass “20” nicht im Datenbestand enthalten ist.

6 Sequentielles Suchen Nachteile Vorteile sehr zeitaufwendig
eignet sich nicht für große Datenbestände Vorteile einfach zu realisieren ( Programmierung) eignet sich für kleine Datenbestände eignet sich auch für unsortierte Datenbestände

7 Sequentielles Suchen Aufwand
Der Aufwand beim sequentiellen Suchen ist abhängig von der Anzahl der Datensätze. worst case: bei n Datensätzen müssen n Vergleiche durchgeführt werden (gesuchter Schlüssel im letzten Datensatz oder gar nicht vorhanden)

8 Binäre Suche nur geeignet für sortierte Datenbestände
Schlüsselwerte müssen eindeutig sein (dürfen also nicht mehrfach im Datenbestand vorkommen) Teile-und-herrsche-Prinzip Verfahren: Vergleiche das mittlere Element des Datenbestands mit dem Suchschlüssel. Wenn Übereinstimmung dann fertig. Wenn Suchschlüssel größer, dann Suche in rechter Hälfte fortsetzen. ( mittleres Element der rechten Hälfte) Wenn Suchschlüssel kleiner, dann Suche in linker Hälfte fortsetzen. ( mittleres Element der linken Hälfte)

9 Binäre Suche Beispiel: 3 5 9 17 22 30 32 36 42 43 49 53 55 61 66
Suchschlüssel: 30 [3..66] Vergleiche mit 36: 30<36  linke Hälfte [3..32] Vergleiche mit 17: 30>17  rechte Hälfte [22..32] Vergleiche mit 30: 30=30  gefunden!

10 Binäre Suche Vorteile: Nachteile:
zeitsparender gegenüber der seq. Suche weniger Vergleiche nötig geeignet für große Datenbestände Nachteile: erfordert sortierten Datenbestand eignet sich nicht, wenn Datenbestand in verketteter Liste vorliegt, da Bestimmung des Mittelelments zu aufwendig ist

11 Binäre Suche Bei einem Datenbestand von Datensätzen werden maximal 20 rekursive Aufrufe benötigt, bis feststeht ob – und wenn ja – an welcher Stelle ein bestimmtes Element steht.

12 Interpolationssuche Stellt Verbesserung der binären Suche dar.
Versucht zu „erraten“, wo sich der gesuchte Schlüssel im betrachteten Intervall befinden könnte, anstatt immer nur mit dem mittleren Element zu vergleichen. Vergleichbar mit der Suche in einem dicken Telefonbuch: Beginnt der Name mit „B“, sucht man weiter vorne, beginnt er mit „W“, sucht man weiter hinten.

13 Interpolationssuche Bei der binären Suche wurde die Mitte bestimmt, um dort den nächsten Vergleich durchzuführen: m = (l + r) / 2 = l + ½ (r - l) Bei der Interpolationssuche ersetzt man nun den Faktor ½ durch eine geeignete Schätzung für die wahrscheinliche (oder erwartete) Position des Suchschlüssels.

14 Interpolationssuche Voraussetzung: key - data[left]
mitte = left + ——————————————————————————— * (right - left) data[right] - data[left] Voraussetzung: die Schlüsselwerte im Intervall data[left], ... , data[right] sind Zahlenwerte und einigermaßen gleichverteilt mitte wird bei der Berechnung korrekt gerundet

15 Interpolationssuche Beispiel 1
(absolute Gleichverteilung: jeder Wert ist genau einmal vorhanden) Suchschlüssel key=5 1. Durchgang: left=0, right=14 Die Berechnung ergibt: mitte=4 D.h. bereits der erste Vergleich trifft ins Schwarze!

16 Interpolationssuche Beispiel 2
(weitgehende Gleichverteilung: zwischen dem kleinsten und dem größten Wert gibt es nur wenige Lücken) Suchschlüssel key=6 1. Durchgang: left=0, right=14 Die Berechnung ergibt: mitte=3 D.h. auch hier trifft der erste Vergleich!

17 Interpolationssuche Beispiel 3 1 4 5 6 7 8 10 11 13 14 16 18 20 21 22
Suchschlüssel key=18 1. Durchgang: left=0, right=14 Die Berechnung ergibt: mitte=11 D.h. auch hier trifft der erste Vergleich!

18 Interpolationssuche Vorteile: Nachteile:
I.d.R. weniger Vergleiche nötig als bei binärer Suche Nachteile: setzt gleichmäßig verteilte Schlüsselwerte voraus (ist in der Praxis nicht unbedingt gegeben) Berechnung von „mitte“ ist komplexer

19 Interpolationssuche Der Quellcode der Interpolationssuche entspricht dem der Binären Suchen mit der einzigen Änderung, dass die Berechnung vom “mitte” entsprechend geändert wird.


Herunterladen ppt "Algorithmen und Datenstrukturen"

Ähnliche Präsentationen


Google-Anzeigen