|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сортировка Защита и сокрытие информации. Атаки и взлом Сжатие информации и кодирование. СRC Графика и обработка изображений. Фракталы Поиск в строках, массивах, последовательностях Разбор выражений. Компиляторы и интерпретаторы Cтруктуры данных. Хранение информации AI, ГА, Нейронные сети Вейвлеты Игры, и все с ними связанное Разное Софт: просмотр PS и PDF файлов Написать веб-мастеру Почитать историю сайта |
Поиск в строках, массивах, последовательностях:
В данном обзоре мне хотелось бы рассмотреть наиболее известные алгоритмы поиска. На самом деле их гораздо больше, однако многие мне показались уж слишком неоптимальными. |
Алгоритм |
Время на пред. обработку |
Среднее время поиска |
Худшее время поиска |
Затраты памяти |
Примечания |
Нет |
2*n |
O(n*m) |
Нет |
Mалые трудозатраты на программу |
|
O(s+m) |
O(n) |
O(n) |
O(s*m) |
- |
|
Нет |
O(n+m) |
O(n*m) |
Нет |
- |
|
O(s+m) |
O(n) |
O(n) |
- |
Хорош, если длина |
|
O(m) |
O(n+m) |
O(n+m) |
O(m) |
- |
|
O(m) |
O(n+m) |
O(n+m) |
O(m) |
- |
|
O(1) |
O(n+m) |
O(n*m) |
O(1) |
Время и место для |
|
O(m+s) |
O(n+m) |
O(n*m) |
O(m+s) |
Алгоритмы этой группы наиболее эффективны в обычных ситуациях. Быстродействие повышается при увеличении образца или алфавита. |
|
O(m+s) |
O(n+m) |
2*n |
O(m+s) |
Улучшение предыдущего алгоритма. |
|
O(m+s) |
O(n+m) |
O(n*m) |
O(m+s) |
Легок в реализации. Так же эффективен, как и БМ. |
|
O(m+s) |
O(n+m) |
O(n*m) |
O(m+s) |
Очень быстрый алгоритм для обычных текстов и поиска. Эффективность падает с увеличением длины образца, но возрастает - с увеличением алфавита. |
|
O ( m ) |
O(n(logsm)/m) |
O(n*m) |
O ( m ) |
- |
|
O ( m ) |
O(n(logsm)/m) |
2n |
O ( m ) |
маленький алфавит и длинный образец |
|
O(m+s) |
O(n+m) |
O(n*m) |
O(m+s) |
Очень быстрый алгоритм для обычных текстов и поиска. Большой объем предварительных вычислений. |
|
O(m+s) |
O(n+m) |
O(n*m) |
O(m+s) |
Очень быстрый алгоритм для обычных текстов и поиска. Большой объем предварительных вычислений. |