Algorytm wyszukiwania tekstowego jest podstawową metodą przetwarzania tekstu i wyszukiwania informacji. Algorytm ten pozwala nam zlokalizować i zidentyfikować wystąpienia podłańcucha(lub wzorca) w większym fragmencie tekstu.
Jak to działa
- Zacznij od większego fragmentu tekstu(lub dokumentu) i podłańcucha do wyszukania.
- Przejrzyj kolejno każdy znak tekstu.
- Porównaj podłańcuch z fragmentem tekstu, który ma taką samą długość jak podłańcuch. Jeśli zostanie znalezione dopasowanie, zapisz bieżącą pozycję.
- Przejdź do następnej pozycji i kontynuuj porównanie.
Przykład
Rozważ tekst: „Wyszukajmy podłańcuch w tym tekście, aby zobaczyć, jak działa algorytm”.
I podłańcuch do wyszukania: „podłańcuch”
- Zacznij od pozycji 0. Porównaj
Let'
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 1. Porównaj
et's
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 2. Porównaj
t's
" z "podłańcuchem". Brak dopasowania. - Przejdź do pozycji 3. Porównaj
's s
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 4. Porównaj
se
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 5. Porównaj
sea
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 6. Porównaj
earc
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 7. Porównaj
arch
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 8. Porównaj
rch
" z "podłańcuchem". Brak dopasowania. - Przejdź do pozycji 9. Porównaj
ch w
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 10. Porównaj
h wi
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 11. Porównaj "
wit
z "podłańcuchem". Brak dopasowania. - Przejdź do pozycji 12. Porównaj
with
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 13. Porównaj
ithi
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 14. Porównaj
thin
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 15. Porównaj
hinn
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 16. Porównaj
in t
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 17. Porównaj
n th
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 18. Porównaj "
thi
z "podłańcuchem". Brak dopasowania. - Przejdź do pozycji 19. Porównaj
this
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 20. Porównaj
his
" z "podłańcuchem". Brak dopasowania. - Przejdź do pozycji 21. Porównaj
is t
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 22. Porównaj
s te
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 23. Porównaj
ubst
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 24. Porównaj
bstr
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 25. Porównaj
stre
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 26. Porównaj
trin
z „podłańcuchem”. Nie pasuje. - Przejdź do pozycji 27. Porównaj
ring
z „podłańcuchem”. Znaleziono dopasowanie, pozycja rekordu 27.
Podłańcuch „substring” znajduje się na pozycji 27 w tekście.
Przykładowy kod w C++
W tym przykładzie textSearch
funkcja służy do znajdowania pozycji podłańcucha „substring” w tekście. Wynikiem będzie wektor zawierający początkowe pozycje meczów.