2010-05-13 10 views
7

Ich habe eine größere Reihe von Saiten, die ich als Nachschlag verwenden möchte.Verwendet in_array() einen binären Suchalgorithmus?

Ich verwende in_array(), aber ich vermuten seine eine einfache Schleife durch das Tun - weiß jemand, ob die in_array() algo ein bsearch algo verwendet?

+0

Nicht sicher, ob in_array tut. Ich bin darauf gestoßen, dachte, du könntest es nützlich finden. http://au.php.net/manual/en/function.array-search.php#93352 –

Antwort

3

in_array() verwendet eine lineare Suche (O (n)) statt einer binären Suche (O (log n)).

Wenn Sie O (log n) oder besser möchten, würde ich vorschlagen, dass Sie entweder die Werte, die Sie als Schlüssel in einem Array suchen möchten, oder Sie erstellen eine Indexstruktur, die das gleiche tut.

5

Da es nicht das Array benötigt sortiert werden, ich sehe nicht, wie es eine binäre Suche tun könnte.

+0

Ich weiß, dass es nicht, aber um fair zu sein, könnte das OP gedacht haben, dass PHP eine Sortierreihenfolge unterstellte die Haube. –