Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie binarne - ale to jest szybkie :O
Forum PHP.pl > Inne > Hydepark
SmokAnalog
Cześć,

zastanawiałem się jak szybkie jest wyszukiwanie binarne w porównaniu do naiwnego, liniowego przeszukiwania. Wyniki mnie dobiły laugh.gif

Załóżmy, że przeszukujemy żyjącą ludność świata (około 7 i pół miliarda rekordów), chcąc znaleźć daną osobę. Dla zobrazowania przypadku załóżmy, że robimy to "ręcznie" i każda osoba zajmuje nam 1 sekundę.

W przypadku wyszukiwania binarnego, najbardziej pesymistyczny przypadek to 33 sekundy pracy.
W przypadku wyszukiwania liniowego, jest to...

...

Ponad 237 lat.

A teraz przykład z przeszukiwaniem atomów we wszechświecie (tak, wiem - wszyscy to robimy prawie codziennie). Naukowcy szacują, że liczba atomów we wszechświecie to około 1 i 80 zer, czyli:

10000000000000000000000000000000000000000000000000000000000000000000000000000000
0

Metodyka ta sama, szukanie ręczne i jedna sekunda na rekord.

W przypadku wyszukiwania binarnego, najbardziej pesymistyczny przypadek to 266 sekund pracy, czyli niecałe 4 i pół minuty.
W przypadku wyszukiwania liniowego, jest to...

...

Ponad 3168808781402895023702689684893654777296118843004537734174968945673942251 lat.
Zakładając, że wszechświat istnieje od 13,82 miliardów lat, nasz wszechświat musiałby się zacząć i skończyć 229291518191236977113074506866400490397693114544467274542327709 razy, żebyśmy przeszukali liniowo wszystkie atomy naszą metodą.

Bania zryta. laugh.gif

Już mnie tak nie dziwi, że Google jest takie szybkie. Kwestia bardzo dobrego indeksowania, bo samo wyszukiwanie można niesamowicie wręcz przyśpieszyć.

Nerdowa część mnie jest szczęśliwa.
Tomplus
Tylko pamiętaj, wyszukiwanie binarne jest użyteczne, tylko wtedy, kiedy lista jest posortowana. Dlatego jest takie szybkie, bo pomija połowę niepotrzebnych indeksów z wyszukiwaną wartością.
SmokAnalog
No Ameryki nie odkryłeś Lkingsmiley.png

Dlatego pisałem, że to kwestia dobrych indeksów. I nie połowę pomija, tylko wykładniczą ilość, jak widać na załączonym przykładzie. Ciekaw jestem jakie dodatkowe sztuczki są stosowane przez Google, żeby to jeszcze bardziej przyśpieszyć, bo przy wysublimowanych indeksach nie trzeba nawet tak skakać po połówkach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.