Изменения

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

Алгоритм Райта

650 байт добавлено, 17:42, 27 марта 2016
Псевдокод
==Псевдокод==
Побочные функцииФункция поиска индекса первого вхождения сивола в массиве <tex>y</tex> с позиции <tex>fromIndex</tex> до позиции <tex>toIndex</tex>
'''int''' findFirst('''char'''[] y, '''int''' fromIndex, '''int''' toIndex, '''char''' symbol)
'''for''' (i = fromIndex .. toIndex)
'''return''' i
'''return''' -1
 
Проверка, что все символы в <tex>y</tex> с позиции <tex>fromIndex</tex> и до <tex>toIndex</tex> и <tex>x</tex> с начала и до конца совпадают.
'''boolean''' restEquals('''char'''[] y, '''int''' fromIndex, '''char'''[] x, '''int''' toIndex)
'''for''' (i = fromIndex .. toIndex)
'''if''' (y[i] != x[i - fromIndex + 1])
'''return''' false
'''return''' true
'''print'''(<font color=green>"No matches"</font>)
'''return'''
<font color=green>//Вычисление массива плохих сиволов и объявление первого, последнего и среднего сиволов</font>
bmBc = preBmBc (x, m)
firstCh = x[0];
'''while''' (j <= n - m)
c = y[j + m - 1]
'''if''' (lastCh == c && middleCh == y[j + m / 2] && firstCh == y[j] && <font color=green>//Совпадение шаблона и окна из текста</font>
restEquals(y, j + 1, x, j + m - 2))
'''print'''(j)
317
правок

Навигация