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'sma '"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 sma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 4. Qabbel
sema '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 5. Qabbel
seama '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 6. Qabbel
earcma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 7. Qabbel
archma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 8. Qabbel
rch" ma '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 9. Qabbel
ch wma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 10. Qabbel
h wima '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 11. Qabbel "
witma' "substring". L-ebda taqbila. - Imxi għall-pożizzjoni 12. Qabbel
withma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 13. Qabbel
ithima '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 14. Qabbel
thinma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 15. Qabbel
hinnma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 16. Qabbel
in tma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 17. Qabbel
n thma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 18. Qabbel "
thima '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 19. Qabbel
thisma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 20. Qabbel
his" ma '"substring". L-ebda taqbila. - Imxi għall-pożizzjoni 21. Qabbel
is tma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 22. Qabbel
s tema '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 23. Qabbel
ubstma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 24. Qabbel
bstrma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 25. Qabbel
strema '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 26. Qabbel
trinma '"substring". Ebda taqbila. - Imxi għall-pożizzjoni 27. Qabbel
ringma '"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.

