4551
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) Нет описания правки |
||
Строка 12: | Строка 12: | ||
Этап поиска алгоритмов сравнения строк работает следующим образом. Вначале он выравнивает | Этап поиска алгоритмов сравнения строк работает следующим образом. Вначале он выравнивает левые концы образца и текста, затем сравнивает выровненные символы текста и образца – эта операция называется попыткой или сканированием – а после обнаружения совпадения всего образца либо несовпадения перемещает образец вправо. Эта процедура повторяется до тех пор, пока правый конец образца не выйдет за правый конец текста. Фаза сканирования может рассматриваться как операция над текстом сквозь окно, размер которого чаще всего совпадает с длиной образца. Данный вид обработки называется механизмом сканирования и сдвига. Различные стратегии сканирования окна легли в основу разных алгоритмов, обладающих различными свойствами и преимуществами. | ||
Алгоритм решения задачи ESM полным перебором выполняет проверку вхождения P на каждой позиции j строки T, где 1 | Алгоритм решения задачи ESM полным перебором выполняет проверку вхождения P на каждой позиции j строки T, где <math>1 \le j \le n - m + 1</math>. Ему не требуется этап предварительной обработки. Этот алгоритм требует O(mn) времени и константной дополнительной памяти и в среднем производит O(n) сравнений символов. Его можно сравнить со следующими границами. | ||
Теорема 1 (Коул и коллеги 1995 [ ]). Минимальное количество сравнений символов для решения задачи ESM в наихудшем случае | Теорема 1 (Коул и коллеги 1995 [3]). Минимальное количество сравнений символов для решения задачи ESM в наихудшем случае оказывается больше или равно n + 9/(4m)(n — m) и может быть сделано меньше или равно n + 8/(3(m + 1))(n - m). | ||
правка