Algorytm działa na uporządkowanym zbiorze, który może być zapisany w tablicy statycznej, dynamicznej lub liście. Jest szybszy w działaniu niż przeszukiwanie binarne. W czystej postaci sprawdza się na zbiorze, w którym wzrost kolejnych elementów jest jednostajny (1,2,3,4,5…)Ale wprowadzając dodatkowe zabezpieczenie przed możliwością dzielenia przez ZERO może być zastosowany do dowolnego uporządkowanego zbioru (1,6,7,7,7,10,20,200,…) lub (1,100,156,980,1456,…) Kompletny opis- teoretyczny patrz książka „Algorytmy i struktury danych” autor Rod Stephens, wydawnictwo Helion.

Nasz zbiór będziemy przechowywać w tablicy dynamicznej zdefiniowanej na naszym własnym typie tTab (oczywiście lepszym rozwiązaniem byłby typ wskaźnikowy, którego wskaźniki byłby przechowywane w TList co nie jest trudne do zaimplementowania)

Nagłówek funkcji wyszukiwania

gdzie:
A– zbiór wartości zapisanych w tablicy
Wartosc– to co szukamy
L,P– dolny i górny zakres zbioru (na przykład L:=0, P:=high(A) );
Kroki– informacja po ilu krokach znaleziono szukaną wartość (można z tego zrezygnować, zmienna wprowadzona jest teoretycznie aby można było porównać algorytm z przeszukiwaniem binarnym)

Ciało funkcji

I to tyle

Pozdrawiam oksal Zbylitowska Góra 25.02.2007

Autor: Oksal