|
Um in einem einfachen sortierten Feld schnell etwas zu finden ist die binäre Suche (Binary search) das ideale Instrument. Statt wie die lineare Suche jedes Element in einem Feld mit dem Suchbegriff zu vergleichen, teilt sie das Feld immer wieder in zwei Hälften und sucht in der Hälfte weiter, die das Element enthalten muss. Durch dieses Vorgehen braucht die binäre Suche in einem Feld mit 60000 Elementen maximal 17 Vergleiche um das gesuchte Element zu finden oder um festzustellen, daß das Element nicht in dem Feld enthalten ist.
Die hier vorgestellte C++ Variante bietet zwei Besonderheiten. Zum einen arbeitet sie iterativ, obwohl die Standardimplementierung in der Regel rekursiv erfolgt. Die iterative Variante hat aber den Vorteil den Stack zu schonen. Zum zweiten liefert sie bei Bedarf einen Index, um die Einfügeposition für ein nicht vorhandenes Element festzustellen.
|