Изменения

Перейти к: навигация, поиск
Псевдокод
'''Поиск диапазона '''
/*
array - суффиксный масcив. p - образец. n - длина образца. left - левая граница диапазона. right - правая граница диапазона. '''cmp<tex>_k</tex>''' сmp (k) - Функция, сравнивающая строки по k-тому символу.
'''lower_bound'''(left, right, value, cmp), '''upper_bound'''(left, right, value, cmp) - функции бинарного поиска.
Элементы строк нумеруются с единицы
*/
left = 0; <font color=darkgreen> // left, right - границы диапазона </font> right = n; <font color=darkgreen> // n - длина образца </font>
'''for''' i = 1 '''to''' n {
left = '''lower_bound'''(left, right, p[i], cmp<tex>_i</tex>(i) ); right = '''upper_bound'''(left, right, p[i], cmp<tex>_i</tex>(i) );
}
'''if''' (right - left > 0) {
Анонимный участник

Навигация