Wyszukiwanie binarne w PHP

Komentarze

Jedno jest pewne, funkcja in_array PHP jest długi, zbyt wolno.

Nie ma alternatywy dla badań naukowych, czy element tablicy nazywa się "binary search", który nawiasem mówiąc, niezależnie od języka używać, pomysły są takie same. Koncepcja jest prosta, czy przedmiot znajduje się w środku tablicy, jeśli nie, wyciąć go na pół, czy to jest w połowie, jeśli nie, pół przeciąć na pół, w nieskończoność, lub do ostatniego.

Wyobraźmy sobie, aby wyszukać nazwę "Julio Nóbregę" w książce telefonicznej. Przejdź do pozycji pozycji i sprawdzić, czy każdego terminu jest równoznaczny z szaleństwem. Chodź, otworzyć listę w środku i zobaczyć nazwę, jeśli on Julio Nóbregę, pronto. Jeśli nie, to nazwy, które są w środku, jest wyższa lub niższa niż nasze słowa? Jeśli jest większy, przerwa w połowie listy i spojrzeć na pierwszą część. Wyeliminować 50% gdzie szukać w mgnieniu oka. Powtórz tę czynność, a zmniejsza się aż do miejsca szukaj tylko wyszukiwania. Dużo lepiej niż jeden po drugim.

Tam jest funkcja:

PHP:
  1. $elemento , $matriz ) Funkcja procura_binaria ($ element, $ tablica)
  2. (
  3. ; Niskie $ = 0;
  4. ( $matriz ) - 1 ; $ Wysokie = sizeof ($ tablica) - 1;
  5. $baixo <= $alto ) { while ($ low <= $ wysoki) (
  6. ( ( $baixo + $alto ) / 2 ) ; = $ Bliskim piętrze (($ + $ niski wysoki) / 2);
  7. $elemento == $matriz [ $meio ] ) { if ($ element == $ array [$ połowie]) (
  8. [ $meio ] ; return $ tablica [$ środku];
  9. { Inny ()
  10. $elemento < $matriz [ $meio ] ) { if ($ element <$ array [$ połowie]) (
  11. - 1 ; Top $ = $ środku - 1;
  12. { Inny ()
  13. + 1 ; Bottom = $ $ środku + 1;
  14. )
  15. )
  16. )
  17. ; // Não achou! return false; / / Nie znaleziono!
  18. )

Użycie jest bardzo proste:

PHP:
  1. !pesquisa_binaria ( $termo , $matriz ) ) { if (! pesquisa_binaria ($ kadencja, $ tablica)) (
  2. ; echo "Nie znaleziono!";
  3. )

  • obojÄ™tny
    Tak, heh:) zapomniałem wspomnieć w tym rodzaju.

    Co do tablicy, tablica, wektor, lista, słownik, stolik, czasami się mylić: P jesteś całkowicie poprawne.

    Z perspektywy czasu, moje pisanie zgrzeszył w tych błędów .. dzięki za ostrzeżenie!
  • in_array znaleźć element, nawet jeÅ›li tablica nie jest obciążona ... jeÅ›li chcesz zamówić tablicÄ™ przed, nie opÅ‚aca siÄ™ używać binarnych szukaj ...

    oh, i są irytujące: tablica jest prawidłowe lub wektory ... tablica ma dwa wymiary:)
blog komentarze powered by Disqus

Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
Dolet 96 zniżki na hosting Dreamhost!
Użyj "PROMO KOD" bezwładności. LAMP z 20GB miejsca i 1TB transferu.

Import:

  • Brak pokrewnych postów

Kategorii