Хелпикс

Главная

Контакты

Случайная статья





Эффективность индексно-последовательного поиска.



Эффективность индексно-последовательного поиска.

m=n/p, где n-размер индекса, p-размер шага

Q=(n+1)/2+(p+1)/2= (n/p+1)/2 + (p+1)/2= n/2p+p/2+1

 

4. (реферат по «поиск в таблице» на 5 страниц, титульный лист- название вуза, кафедры, студент, Краснодар 2012)

 

5. Алгоритм:

· Символы подвергаются сравнению

· При несовпадении пары символов, слово сдвигается на все пройденное расстояние

· Меньшие сдвиги не могут привести к полному совпадению

Пример: ABCABCABAABCABD

ABCABD

ABCABD

ABCABD

   ABCABD

      ABCABC

 

Пусть j определяет позицию в слове, содержащую первый несовпадающий элемент. Величина сдвига j-D. D – размер самой длинной последовательности, зависит только от слова и не зависит от текста. Для каждого j будет своя D, dj. Перед началом поиска можно вычислить вспомогательную таблицу d.

Анализ алгоритма.

Требуется M+N сравнений символов.

 

Примеры:

1. Дан массив: 4, 7, 9, 11, 14, 23, 29, 30, 34, 37, 40, 42. Найти элемент с ключом 23, линейный поиск.

 

2. Дан массив: 9, 12, 34, 17, 22, 38, 40, 51. Найти элемент с ключом 17, двоичный поиск.

9, 12, 17, 22, 34, 38, 40, 51

9, 12, 17, 22

 

6. Считается наиболее быстрым среди алгоритмов поиска. Был разработан в 1977 году. Преимущества: не нужно сравнивать шаблон с каждой исходной буквой текста, так как некоторые из них можно пропустить. Суть действия:

1. Строится таблица смещения для искомого шаблона (совмещается начало текста и шаблона, проверка начинается с последнего символа шаблона)

2. Если последний символ шаблона и соответствующий символ строки не совпадают, то образец сдвигается относительно строки на полученную величину, взятую из таблицы смещений

3. Берем символ из строки, а не из шаблона, и смотрим соответствующий сдвиг в таблице

4. Сдвигаем и снова начинаем проверку с последнего символа. Если символы совпадают, то производится сравнение предпоследнего символа

5. Если все символы шаблона совпали с наложенными символами строки, то поиск окончен

6. Если какой-то символ шаблона не совпадает с соответствующим символом строки (не последний символ), то шаблон сдвигается на 1 символ вправо и проверка начинается с последнего символа

7. Алгоритм выполняется до тех пор, пока не будет найдет вхождение искомого образца, либо не достигнут конец строки

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.