Sortierte Folgen WS13-14
Inhaltsverzeichnis |
Einleitung
Sortierte Folgen
In der Informatik ist eine Folge eine Aneinanderreihung von Symbolen eines Alphabets. Ein Alphabet ist eine endliche Menge von voneinander unterscheidbaren Symbolen, die aus Zeichen oder Buchstaben bestehen. Diese können mit Hilfe bestimmter Algorithmen sortiert werden. Bekannte Sortieralgorithmen sind Selection Sort, Insertion Sort, Quicksort, Countingsort und Heapsort. Die neu entstandene Folge nennt man Sortierte Folge. Diese Folgen können in der Informatik zum Beispiel in Arrays oder Listen umgesetzt werden.
Verwendung
Suchen in einer sortierten Folge
Algorithmisches Problem
Bei der Suche in einer sortieren Folge ist es das Ziel ein bestimmtes Element k in einer Menge M zu finden und z.B. dessen Index auszugeben. Eingegeben werden soll eine endliche, aufsteigend sortierte Folge e_0, e_1… e_n von Elementen aus einer Menge M, auf der eine Ordnung “<” gegeben ist. Außerdem soll ein Element k ∈ M, welches gesucht werden soll angeben werden. Ausgeben werden soll der Index des Elementes, i ∈ {0, 1 … n} sodass e_i = k gilt, vorausgesetzt ein solcher Index existiert. Ansonsten wird „nicht enthalten“ ausgegeben werden.
Beispiele
Beispiel 1
M sei die Menge der ganzen Zahlen und die gegebene Ordnung “<” auf M ist die übliche größer/kleiner Beziehung zwischen zwei ganzen Zahlen.
1. Die gegebene, aufsteigend sortierte Folge sei:
4; 6; 8; 9; 13; 15; 16; 21; 35; 47; 51; 126; 211Gesucht werden soll nach k = 35.
Die gewünschte Ausgabe ist der Index 8.
2. Die gegebene, aufsteigend sortierte Folge sei:
4; 6; 8; 9; 13; 15; 16; 21; 35; 47; 51; 126; 211Gesucht werden soll nach k = 17.
Die gewünschte Ausgabe ist nicht enthalten.
Beispiel 2
M sei die Menge der Wörter der deutschen Sprache und die gegebene Ordnung “<” auf M ist die Reihenfolge, in der die Wörter im Duden erscheinen oder auch lexikographische Ordnung genannt.
Die gegebene, aufsteigend sortierte Folge sei:
alt, beige, braun, eng, gesund, japanisch, jung, xenophobGesucht werden soll nach k = kalt.
Die gewünschte Ausgabe ist Nicht enthalten.
Lineare Suche
Lineare Suche ist ein Algorithmus, der auch unter dem Namen sequentielle Suche bekannt ist. Er ist der einfachste Suchalgorithmus überhaupt. Die Aufgabe besteht hier darin, ein Element in einer Liste oder einem Array mit n Elementen zu finden.
Die Arbeitsweise ist hier folgende:
1. Gehe die Indizes i der Elemente in der gegebenen sortierten Folge beginnend bei 0 einen nach dem anderen durch.
1.1Falls e_i gleich k ist, dann brich die Suche ab und gib den Index i aus.
1.2 Sonst
1.2.1 Falls k < ei ist, dann brich die Suche ab und gib Nicht enthalten aus.
1.2.2 Sonst gehe zum nächsten Element in der Folge.
2. Falls die Suche nicht zwischendurch abgebrochen wurde, gib Nicht enthalten aus.