Изменения

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

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

38 байт убрано, 22:25, 25 апреля 2016
Псевдокод
В сам алгоритм добавляется обработка турбо-сдвигов.
'''function''' TBM('''char'''[] x, '''char'''[] y) , '''int''' n = length(y) , '''int''' m = length(x):
'''int''' i = 0
'''int''' u = 0
'''if''' (j < 0)
print(i)
shift = bm_gsbmGs[0]
u = m - shift
'''else'''
'''int''' v = m - 1 - j
'''int''' turbo_shift turboShift = u - v '''int''' bc_shift bCShift = bm_bcbmBc[y[i + j]] - m + j + 1 shift = max(turbo_shiftturboShift, bc_shiftbCShift, bm_gsbmGs[j + 1]) '''if''' (shift == bm_gsbmGs[j + 1])
u = min((m - shift), v)
'''else'''
'''if''' (turbo_shift turboShift < bc_shiftbcShift)
shift = min(shift, (u + 1))
u = 0
251
правка

Навигация