У меня есть файл, содержащий имена песен 30K. Я должен использовать этот список для автоматического предложения текста с помощью AJAX. Некоторые имена также начинаются с цифр. Мой вопрос: могу ли я выполнить бинарный поиск по этому списку? Если да, то как?Бинарный поиск в php над списком строк
ответ
Прежде всего рода перечень;
Предположим, что первая буква, которую пользователь набрал, - «A»;
Начать с high = 0 и low = количество строк -1;
Затем вы можете определить высокий и индекс низкой, где высокий последний индекс, который начинается с «A» и низкий первый индекс, который имеет строку начинается с «A». С двумя бинарными поисками это может быть достигнуто.
Таким образом, если следующая буква, набравшая букву «B», вы делаете другой бинарный поиск в диапазоне высоких и низких значений выше и снова корректируете высокий и низкий уровни с помощью двух бинарных поисков. Убедитесь, что вы ищите второй символ строк между высоким и низким для соответствия «B» и т. Д. :)
Примечание: Я бы предложил использовать базу данных, чтобы сделать это, но по мере того, как вы спрашивали, есть ли каким-либо образом использовать бинарный поиск, Я отвечаю на этот путь :)
Простой SQL-запрос: SELECT column_name FROM table_name WHERE column_name LIKE 'prefix%'
для выбора строки те начинаются с «префикса» хранится в столбце «column_name» таблицы «table_name»
Большое падение здесь - вам нужно заполнить и найти массив из 30 000 элементов с каждым запросом. – Orangepill
@Orangepill: список предварительно заполнен, я считаю. и поиск - двоичный поиск, так что lg (30 000) <= 16 (где, lg = log2). Таким образом, на каждом шаге будет не более 16 + 16 = 32 сравнений. – Fallen
Не буду ли я запрашивать базу данных каждый раз, когда пользователь нажимает клавишу, если я буду использовать базу данных? – silverflash
Вы можете использовать mixed array_search (mixed $needle , array $haystack [, bool $strict = false ])
- 1. Бинарный поиск массива строк
- 2. бинарный поиск строк в java
- 3. Рекурсивный бинарный поиск в PHP
- 4. C# Бинарный поиск
- 5. Бинарный поиск строки в списке строк
- 6. Python Regex над списком строк
- 7. Установить операцию над списком строк
- 8. Бинарный поиск в массиве
- 9. Как реализовать бинарный поиск для массива строк?
- 10. Итерации над списком строк в python
- 11. Еогеасп над списком строк в C#
- 12. Итерация над списком строк в Java?
- 13. Итерация над списком строк в MATLAB
- 14. Итерация над списком строк в Python
- 15. Бинарный поиск строковых массивов
- 16. Бинарный поиск в массиве
- 17. бинарный поиск в OCaml?
- 18. бинарный поиск в java
- 19. бинарный поиск результатов запроса
- 20. Бинарный поиск CompareTo Java
- 21. Linq не работает над списком строк
- 22. бинарный поиск и последовательный поиск
- 23. Elixir бинарный поиск
- 24. Бинарный поиск через битмаскирование?
- 25. Бинарный поиск, отсортированный массив
- 26. Как реализовать бинарный поиск?
- 27. PHP: Поиск с выпадающим списком
- 28. Как оптимизировать бинарный поиск?
- 29. Бинарный поиск со строками
- 30. Как работает бинарный поиск?
Define " бинарный поиск ", пожалуйста. Как вы хотите, чтобы результаты выглядели? Является ли выпадающим списком? – silkfire
Используйте базу данных ... не пытайтесь делать это с большим файлом. – Orangepill
@silkfire Да, его покажет, как в раскрывающемся списке, как в Google – silverflash