Изменения

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

Алгоритм Shift-Or

105 байт добавлено, 22:17, 7 июня 2014
Псевдокод
'''string''' bitap_search('''string''' text, '''string''' pattern)
n = |pattern|.length m = |text|.length
'''if''' n == 0
'''return''' text
M = new array [n][m + 1] of bit, initially all // для поиска коротких слов достаточно одной переменной типа integer M = 0
U = new array [<tex>|\Sigma|</tex>][n] of bit, initially all 0
'''for''' i = 1..n
U[pattern[i]][i] = 1
'''for''' j = 1..m
M[j] = Bit-Shift(M[j - 1]) '''and''' U[t[j]]
'''for''' j = 1..m
'''if''' M[n][j]
'''return''' text[j - n + 1..j]
'''return''' null
Анонимный участник

Навигация