Перейти к поиску - Jump search

В Информатика, а перейти поиск или же блокировать поиск относится к алгоритм поиска за упорядоченные списки. Он работает, сначала проверяя все элементы Lкм, куда и м - размер блока, пока не будет найден элемент, превышающий ключ поиска. Чтобы найти точное положение ключа поиска в списке, a линейный поиск выполняется на подсписок L[(k-1)м, км].

Оптимальное значение м является п, куда п длина списка L. Поскольку оба шага алгоритм посмотри, самое большее, п элементов, которые алгоритм выполняет за O (п) время. Это лучше, чем линейный поиск, но хуже чем бинарный поиск. Преимущество перед последним состоит в том, что при поиске с переходом нужно выполнить только один переход назад, в то время как двоичный файл может перейти назад, чтобы записать п раз. Это может быть важно, если прыжок назад занимает значительно больше времени, чем прыжок вперед.

Алгоритм можно изменить, выполнив несколько уровней поиска перехода по подспискам, прежде чем, наконец, выполнить линейный поиск. Для k-уровневый переход поиск оптимального размера блока мл для л th уровень (считая от 1) равен п(k-l) / k. Модифицированный алгоритм будет выполнять k назад прыгает и бежит за O (кн1/(k+1)) время.

Выполнение

алгоритм Перейти является    Вход: Упорядоченный список L, его длина п и ключ поиска s.    выход: Положение s в L, или же ничего если s не в L.        а ← 0    б ← ⌊√ппока Lмин (б,п)-1 < s делать        аб        бб + ⌊√песли ап тогда            возвращаться ничего        пока Lа < s делать        аа + 1        если а = мин (б, п)            возвращаться ничего        если Lа = s тогда        возвращаться а    еще        возвращаться ничего

Смотрите также

Рекомендации

  • Эта статья включает материалы общественного достояния отNIST документ:Блэк, Пол Э. "поиск в прыжке". Словарь алгоритмов и структур данных.
  • Бен Шнейдерман, Поиск с прыжком: метод быстрого последовательного поиска, CACM, 21 (10): 831-834, октябрь 1978 г.