Algoritem iskanja po nizu se uporablja za iskanje pojavitev določenega vzorca(podniza) znotraj večjega besedila(niza). Ta algoritem igra ključno vlogo pri obdelavi besedila, iskanju in manipulaciji.
Kako deluje
- Začnite z besedilom(niz) in vzorcem(podniz) za iskanje.
- Ponavljajte besedilo en znak naenkrat.
- Za vsak znak v besedilu ga primerjajte s prvim znakom vzorca.
- Če obstaja ujemanje, preverite, ali se tudi naslednji znaki ujemajo z vzorcem.
- Če se vzorec popolnoma ujema, zabeležite začetni položaj ujemanja.
- Nadaljujte z iskanjem vzorca v besedilu.
Primer
Razmislite o besedilu: "ababcababcabcabc" In o vzorcu: "abc"
- Začnite na položaju 0. Primerjajte "a" s prvim znakom "a" v vzorcu.
- Ujemanje najdeno, premaknite se na naslednje znake: "b" z "b" in "a" s "c".
- Nadaljujte z ujemanjem: "b" z "a", "a" z "b" in "b" z "c".
- Tekma ni uspela na položaju 2.
- Začnite znova na položaju 3. Primerjajte "a" s prvim znakom "a" v vzorcu.
- Uspešno ujemanje: "a" z "a", "b" z "b" in "c" s "c".
- Posnemite položaj 3.
Vzorec "abc" se nahaja na mestih 0, 6 in 9.
Primer kode v C++
V tem primeru stringSearch
se funkcija uporablja za iskanje pojavitev vzorca "abc" v besedilu "ababcababcabcabc". Rezultat bo vektor, ki vsebuje začetne položaje tekem.