лучший алгоритм поиска для увеличения производительности? - PullRequest
0 голосов
/ 31 марта 2011

У меня есть список студентов, отображаемых на странице, и я сохраняю информацию о студентах как объект с идентификатором и именем.

Я хочу добавить окно поиска для поиска студентов, если у меня есть полоса прокрутки в списке.

И обновить список студентов в соответствии со строкой поиска.

Сейчас я выполняю итерацию массива объектов ученика и проверяю индекс строки поиска в имени.

Есть ли лучший алгоритм для повышения производительности.

// мой код:

search = function (data, queryString) {var res = new array ();for (stu в данных) {if (stu.name.search (queryString)! = -1) {res.push (stu);}} return res;}

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Вы можете создать отсортированный индекс и использовать бинарный поиск.Несколько индексов, если вам нужно искать по нескольким критериям, например, имя или идентификатор.Проще реализовать, чем дерево.

0 голосов
/ 31 марта 2011

Вы хотите найти трехуровневую структуру данных или основную или трехкратную критику, где пустые узлы сжимаются.Вы хотите найти kart-trie - специальную версию radix-trie, где в узле всего 2 ребра.В целом три хорошо подходит для алгоритма текстового поиска, например, словарь.Я сделал реализацию карт-три в php на phpclasses.org (карт-три).Вы можете скачать и играть с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...