Бинарный поиск в PHP

Комментарии

Одно можно сказать наверняка, функция in_array PHP медленно, слишком медленно.

Существует альтернатива исследования, является ли элемент в массиве называется "двоичного поиска", который, кстати, на каком языке вы используете, идеи те же. Концепция проста, видеть, если предмет находится в середине массива, если нет, то сократить его вдвое, посмотреть, если это половина, если не сократить половину вдвое, до бесконечности, или до последнего.

Представьте, что вам придется искать имя "Хулио Нобрега" в телефонной книге. Перейдите к пункту пункт и посмотреть, если каждый член равносильно безумию. Ну, откройте список в середине и увидеть название, если он Хулио Нобрега, без промедления. Если нет, то имя, которое находится в середине, выше или ниже, чем наше слово? Если он больше, перерыв в два раза список и посмотрите на первую часть. Мы устраняем 50% от того, где мы ищем в оснастке. Повторите это, и пространство поиска уменьшается до всего около поиска. Намного лучше, чем один на один.

Там идет функции:

PHP:
  1. $elemento , $matriz ) procura_binaria функции ($ элементов, $ массив)
  2. (
  3. ; Низкий $ = 0;
  4. ( $matriz ) - 1 ; $ High = sizeof ($ массив) - 1;
  5. $baixo <= $alto ) { а ($ низкой <= $ высокого) (
  6. ( ( $baixo + $alto ) / 2 ) ; $ = Ближнем этаж (($ + $ низкой высокой) / 2);
  7. $elemento == $matriz [ $meio ] ) { если ($ == $ элемент массива [$ средним]) (
  8. [ $meio ] ; возвращать массив $ [$ средним];
  9. { Остальное ()
  10. $elemento < $matriz [ $meio ] ) { если ($ элемент <массив $ [$ средним]) (
  11. - 1 ; Лучшие $ = $ среднего - 1;
  12. { Остальное ()
  13. + 1 ; Нижняя $ = $ средним + 1;
  14. )
  15. )
  16. )
  17. ; // Não achou! вернуться ложным; / / не найден!
  18. )

Использование совсем несложно:

PHP:
  1. !pesquisa_binaria ( $termo , $matriz ) ) { если (! pesquisa_binaria ($ перспективе массиве $)) (
  2. ; эхо 'не найден! ";
  3. )

  • инертный
    Да, хе:) Я забыл упомянуть в этом роде.

    Что касается массив, массив, вектор, список, словарь, таблицы, иногда я все запутались: р вы совершенно правильно.

    Оглядываясь назад, мой письменный согрешил в этих ошибок .. Спасибо за предупреждение!
  • in_array найти элемент, даже если массив не приказал ... Если Вам необходимо заказать массив ранее, не стоит использовать бинарный поиск ...

    Да, и время раздражает: массив правильно или вектор ... массив имеет два аспекта:)
комментарии блога приведенные в действие

Portugus flagItaliano flagCoreano flagChins (simplificado) flagEnglish flagAlemo flagFrancs flagEspanhol flag
Japons flagrabe flagRusso flagHolands flagBlgaro flagTcheco flagCroata flagDinamarqus flag
Finlands flagHindu flagPolons flagRomeno flagSueco flagGrego flagNoruegus flag 
By N2H
Доля 96 скидка на хостинг Dreamhost!
Использование "промо-код" инерции. LAMP с 20 ГБ и 1 ТБ передачи.

Статьи по Теме

  • Нет соответствующих должностей