Binäre Suche
Aus KGS-Wiki
Die binäre Suche ist ein Algorithmus, um in sortierten (!) Listen möglichst effizient nach Einträgen suchen zu können.
Das Problem ist, dass man in einer unsortierten Liste nur auf eine Art und Weise nach Einträgen suchen kann: indem man jedes einzelne Element nacheinander betrachtet. In einer Liste mit Elementen muss man also schlimmstenfalls Elemente betrachten, um das gesuchte zu finden. Das ist bei extrem langen Listen von Nachteil.
Deswegen bietet es sich an, die Liste zu sortieren und das Prinzip der binären Suche anzuwenden.
Die Idee
Man betrachtet zunächst das Element, das in der Mitte der Liste steht. Nun gibt es drei mögliche Fälle:
- Das mittlere Element ist genau das gesuchte. Hurra! Wir haben es gefunden!
- Das mittlere Element ist größter als das gesuchte. Dann können wir die ganze zweite Hälfte der Liste schon ignorieren. Denn alles, was in dieser zweiten Hälfte steht, ist größer als das mittlere Element (weil die Liste ja sortiert ist) und damit auch größer als das gesuchte Element. Wir können uns also in unserer Suche auf die erste Hälfte der Liste beschränken und diese Hälfte weiter binär durchsuchen.
- Das mittlere Element ist kleiner als das gesuchte. Dann können wir die ganze erste Hälfte der Liste schon ignorieren. Denn alles, was in dieser ersten Hälfte steht, ist kleiner als das mittlere Element (weil die Liste ja sortiert ist) und damit auch kleiner als das gesuchte Element. Wir können uns also in unserer Suche auf die zweite Hälfte der Liste beschränken und diese Hälfte weiter binär durchsuchen.
Der Algorithmus
Gegeben seien eine Liste L
und ein gesuchtes Element g
Baustelle
Dieser Abschnitt wird gerade überarbeitet