Изменения

Перейти к: навигация, поиск

Двусторонний алгоритм

324 байта добавлено, 23:39, 18 ноября 2017
Добавил информацию об использовании в glibc
== Ценность алгоритма ==
Двусторонний алгоритм отчасти похож на алгоритм Бойера-Мура (просмотр символов справа налево и сдвиг позиции при несовпадении на втором этапе), и в лучшем случае работает немногим медленнее его, а в худшем {{---}} значительно превосходит<ref>[http://monge.univ-mlv.fr/~mac/Articles-PDF/CP-1991-jacm.pdf Journal of the Association for Computing Machinery, Vol. 38, No, 1, July 1991] Оценки скорости работы</ref>, но главное отличие двустороннего алгоритма от алгоритмов Кнута-Морриса-Пратта и Бойера-Мура {{---}} константное количество затрачиваемой дополнительной памяти. Именно этот алгоритм (в несколько модифицированном виде) используется в реализации поиска подстроки в glibc<ref>[https://github.com/bminor/glibc/blob/master/string/strstr.c#L84 Реализация функции strstr в glibc]</ref>.
== См. также ==
130
правок

Навигация