24.

SHIFT-OR algorytm

Niechaj T to będzie nasz tekst. m - długość wzorca W.

1. Każdej literze \alpha z alfabetu przyporządkowujemy wektor S_{\alpha} długości m, gdzie S_{\alpha}[i] = 0 iff W[i] = \alpha, w przeciwnym razie 1.

2. Tworzymy wektor bitowy V_0 długości m, składający się z samych 1. Potem go SHIFTujemy i ORujemy z wektorem pierwszej literki.
Czyli V_{0} = ( SHIFTV_0) OR S_{T[0]}

3. Następnie robimy tak: V_{i+1} = ( SHIFTV_i) OR S_{T[i+1]} - Czyli najpierw SHIFTujemy a potem ORujemy z wektorem kolejnej litery w tekście.

Dopasowanie wzorca dostaniemy gdy ostatni bit wektora V_i się równa zero, czyli V_i[m-1] = 0

Ten cały SHIFT to jest SHIFT-RIGHT!!

 
aisd/10.egzamin.1.24.txt · ostatnio zmienione: 2010/09/09 16:05 przez ozzy
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed