Algoritma Panelusuran Teks (Text Search) ing C++- Panjelasan, Tuladha lan Kode

Algoritma Panelusuran Teks minangka cara dhasar ing pangolahan teks lan golek informasi. Algoritma iki ngidini kita nemokake lan ngenali kedadeyan substring(utawa pola) ing potongan teks sing luwih gedhe.

Cara Kerjane

  1. Miwiti kanthi potongan teks(utawa dokumen) sing luwih gedhe lan substring kanggo digoleki.
  2. Ulangi saben karakter teks kanthi urutan.
  3. Bandhingake substring karo bagean saka teks sing dawane padha karo substring. Yen cocog ditemokake, rekam posisi saiki.
  4. Pindhah menyang posisi sabanjure lan terusake perbandingan.

Tuladha

Coba teks: "Ayo goleki substring ing teks iki kanggo ndeleng cara algoritma kasebut."

Lan substring kanggo nggoleki: "substring"

  1. Mulai ing posisi 0. Bandingake Let' karo "substring". Ora cocog.
  2. Pindhah menyang posisi 1. Bandhingake et's karo "substring". Ora cocog.
  3. Pindhah menyang posisi 2. Bandhingake t's " karo "substring". Ora cocog.
  4. Pindhah menyang posisi 3. Bandingake 's s karo "substring". Ora cocog.
  5. Pindhah menyang posisi 4. Bandingake se karo "substring". Ora cocog.
  6. Pindhah menyang posisi 5. Bandhingake sea karo "substring". Ora cocog.
  7. Pindhah menyang posisi 6. Bandhingake earc karo "substring". Ora cocog.
  8. Pindhah menyang posisi 7. Bandhingake arch karo "substring". Ora cocog.
  9. Pindhah menyang posisi 8. Bandhingake rch " karo "substring". Ora cocog.
  10. Pindhah menyang posisi 9. Bandhingake ch w karo "substring". Ora cocog.
  11. Pindhah menyang posisi 10. Bandhingake h wi karo "substring". Ora cocog.
  12. Pindhah menyang posisi 11. Bandhingake " wit karo "substring". Ora cocog.
  13. Pindhah menyang posisi 12. Bandhingake with karo "substring". Ora cocog.
  14. Pindhah menyang posisi 13. Bandhingake ithi karo "substring". Ora cocog.
  15. Pindhah menyang posisi 14. Bandhingake thin karo "substring". Ora cocog.
  16. Pindhah menyang posisi 15. Bandhingake hinn karo "substring". Ora cocog.
  17. Pindhah menyang posisi 16. Bandhingake in t karo "substring". Ora cocog.
  18. Pindhah menyang posisi 17. Bandhingake n th karo "substring". Ora cocog.
  19. Pindhah menyang posisi 18. Bandhingake " thi karo "substring". Ora cocog.
  20. Pindhah menyang posisi 19. Bandhingake this karo "substring". Ora cocog.
  21. Pindhah menyang posisi 20. Bandhingake his " karo "substring". Ora cocog.
  22. Pindhah menyang posisi 21. Bandhingake is t karo "substring". Ora cocog.
  23. Pindhah menyang posisi 22. Bandhingake s te  karo "substring". Ora cocog.
  24. Pindhah menyang posisi 23. Bandhingake ubst  karo "substring". Ora cocog.
  25. Pindhah menyang posisi 24. Bandhingake bstr karo "substring". Ora cocog.
  26. Pindhah menyang posisi 25. Bandhingake stre karo "substring". Ora cocog.
  27. Pindhah menyang posisi 26. Bandhingake trin  karo "substring". Ora cocog.
  28. Pindhah menyang posisi 27. Bandhingake ring  karo "substring". Pertandhingan ditemokake, rekor posisi 27.

Substring "substring" ditemokake ing posisi 27 ing teks kasebut.

Tuladha Kode ing 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;  
}  

Ing conto iki, textSearch fungsi digunakake kanggo nemokake posisi substring "substring" ing teks. Asil bakal dadi vektor sing ngemot posisi wiwitan pertandhingan.