L-algoritmu tat-Tiftix tat-Test huwa metodu fundamentali fl-ipproċessar tat-test u l-irkupru tal-informazzjoni. Dan l-algoritmu jippermettilna nsibu u nidentifikaw okkorrenzi ta' substring(jew mudell) f'biċċa ikbar ta' test.
Kif taħdem
- Ibda b'biċċa test akbar(jew dokument) u substring biex tfittex.
- Itteri f'kull karattru tat-test b'mod sekwenzjali.
- Qabbel is-substring ma' porzjon tat-test li għandu l-istess tul bħas-substring. Jekk tinstab taqbila, irreġistra l-pożizzjoni attwali.
- Imxi għall-pożizzjoni li jmiss u kompli l-paragun.
Eżempju
Ikkunsidra t-test: "Ejja nfittxu substring f'dan it-test biex tara kif jaħdem l-algoritmu."
U s-substring li trid tfittex: "substring"
- Ibda fil-pożizzjoni 0. Qabbel
Let'
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 1. Qabbel
et's
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 2. Qabbel
t's
" ma' "substring". L-ebda taqbila. - Imxi għall-pożizzjoni 3. Qabbel
's s
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 4. Qabbel
se
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 5. Qabbel
sea
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 6. Qabbel
earc
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 7. Qabbel
arch
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 8. Qabbel
rch
" ma '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 9. Qabbel
ch w
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 10. Qabbel
h wi
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 11. Qabbel "
wit
ma' "substring". L-ebda taqbila. - Imxi għall-pożizzjoni 12. Qabbel
with
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 13. Qabbel
ithi
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 14. Qabbel
thin
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 15. Qabbel
hinn
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 16. Qabbel
in t
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 17. Qabbel
n th
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 18. Qabbel "
thi
ma '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 19. Qabbel
this
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 20. Qabbel
his
" ma '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 21. Qabbel
is t
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 22. Qabbel
s te
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 23. Qabbel
ubst
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 24. Qabbel
bstr
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 25. Qabbel
stre
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 26. Qabbel
trin
ma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 27. Qabbel
ring
ma '"substring". Taqbila misjuba, pożizzjoni rekord 27.
Is-substring "substring" tinsab fil-pożizzjoni 27 fit-test.
Eżempju Kodiċi f'C++
#include <iostream>
#include <string>
#include <vector>
std::vector<int> textSearch(const std::string& text, const std::string& query) {
std::vector<int> positions;
for(int i = 0; i <= text.length()- query.length(); ++i) {
int j = 0;
while(j < query.length() && text[i + j] == query[j]) {
++j;
}
if(j == query.length()) {
positions.push_back(i);
}
}
return positions;
}
int main() {
std::string text = "Let's search for a substring within this text to see how the algorithm works.";
std::string query = "substring";
std::vector<int> result = textSearch(text, query);
std::cout << "Substring found at positions: ";
for(int pos: result) {
std::cout << pos << ";
}
std::cout << std::endl;
return 0;
}
F'dan l-eżempju, il- textSearch
funzjoni tintuża biex issib il-pożizzjonijiet tas-substring "substring" fit-test. Ir-riżultat se jkun vettur li jkun fih il-pożizzjonijiet tal-bidu tal-logħbiet.