Podczas wykonywania drugiego kata kodu (który prosi pięć razy o zaimplementowanie algorytmu wyszukiwania binarnego, za każdym razem inną metodą), wpadłem na nieco inne rozwiązanie, które działa w następujący sposób:
Jeśli mam posortowaną tablicę o długości 100 i widzę, że jej pole początkowe zawiera liczbę 200, a pole końcowe zawiera liczbę 400, ja, jako matematyka studiująca człowieka, prawdopodobnie zacznę przeszukiwać pole 35, gdybym szukał liczba 270, a nie pole 50 jak w normalnym algorytmie wyszukiwania binarnego.
Następnie, jeśli liczba w polu 35 tablicy wynosi 270, 35 jest indeksem, którego szukałem.
Jeśli tak nie jest, mogę porównać otrzymaną liczbę (powiedzmy 280) i powtórzyć operację biorąc dolną część tablicy (więc mam 35 pól z polem początkowym zawierającym 200 i polem końcowym zawierającym 280), jeśli liczba, którą znalazłem, jest większa niż to, czego szukam, lub górna część tablicy (powiedzmy, że mam 260: teraz mam 65 indeksów, pierwszy zawiera 260, a ostatni zawiera 400. Orientacyjnie skierowałbym się na torward indeks 4 tej podtablicy, który jest indeksem 39 całej tablicy), jeśli otrzymana liczba jest mniejsza niż liczba, której szukam.
Pytanie brzmi: czy ten algorytm można uznać za algorytm wyszukiwania binarnego? Jeśli nie, to czy ma swoją nazwę?