Изменения
→Псевдокод
В алгоритме используются переменные, введенные выше в разделе "более быстрый поиск".
*/
l = '''lcp'''(p, s[array[0]]) r = '''lcp'''(p, s[array[n-1]]) '''if ''' (l == w or p < s[array[0]]) L<math>_p</math> = 0 '''else ''' if (p > s[array[n-1]) L<math>_p</math> = n '''else ''' { L = 0 R = n - 1 '''while ''' (R - L > 1) '''do ''' { M = (L + R)/2 m<math>_l</math> = lcp(array[L],array[M]) m<math>_r</math> = lcp(array[M],array[R]) '''if ''' (l >= r) '''if ''' (m<math>_l</math> >= l) m = l + '''lcp'''<math>_l</math>(s[array[M]], p) '''else''' m = m<math>_l</math> '''else''' '''if ''' (m<math>_r</math> >= r) m = r + lcp<math>_r</math>(s[array[M]], p) '''else''' m = m<math>_r</math> '''if ''' (m == w || p <=<math>_m</math> s[array[M]]){ R = M r = m } '''else ''' { L = M l = m }
}
}