Изменения

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

Алгоритм Бойера-Мура

395 байт добавлено, 14:01, 18 мая 2016
Псевдокод
Основная функция алгоритма Бойера-Мура
'''function''' BM('''char'''[n] y, '''char'''[m] x): '''vector <int>''' '''vector <int>''' answer <font color=green>// вектор, содержащий все вхождения подстроки в строку</font>
'''if''' m == 0
'''return''' answer.push_back(-1 ) <font color=green>// Искомая подстрока является пустой</font> '''return''' answer
<font color=green>// Предварительные вычисления</font>
'''while''' x[j] == y[i]
'''if''' j == 0
'''return''' answer.push_back(i ) <font color=green>// Найдена подстрока в позиции i</font>
--i
--j
i += max(bmGs[m - 1 - j], bmBc[y[i]])
'''if''' (answer == <tex> \varnothing </tex>)
answer.push_back(-1) <font color=green>// Искомая подстрока не найдена</font>
'''return''' answer
==Пример==
177
правок

Навигация