Algoritma Carian Teks ialah kaedah asas dalam pemprosesan teks dan mendapatkan maklumat. Algoritma ini membolehkan kami mencari dan mengenal pasti kejadian subrentetan(atau corak) dalam sekeping teks yang lebih besar.
Bagaimana ia berfungsi
- Mulakan dengan sekeping teks(atau dokumen) yang lebih besar dan subrentetan untuk dicari.
- Lelaran melalui setiap aksara teks secara berurutan.
- Bandingkan subrentetan dengan sebahagian daripada teks yang mempunyai panjang yang sama dengan subrentetan. Jika perlawanan ditemui, rekod kedudukan semasa.
- Beralih ke kedudukan seterusnya dan teruskan perbandingan.
Contoh
Pertimbangkan teks: "Mari kita cari subrentetan dalam teks ini untuk melihat cara algoritma berfungsi."
Dan subrentetan untuk mencari: "substring"
- Mulakan pada kedudukan 0. Bandingkan
Let'dengan "substring". Tidak setanding. - Beralih ke kedudukan 1. Bandingkan
et'sdengan "substring". Tidak setanding. - Beralih ke kedudukan 2. Bandingkan
t's" dengan "substring". Tiada padanan. - Beralih ke kedudukan 3. Bandingkan
's sdengan "substring". Tidak setanding. - Beralih ke kedudukan 4. Bandingkan
sedengan "substring". Tidak setanding. - Beralih ke kedudukan 5. Bandingkan
seadengan "substring". Tidak setanding. - Beralih ke kedudukan 6. Bandingkan
earcdengan "substring". Tidak setanding. - Beralih ke kedudukan 7. Bandingkan
archdengan "substring". Tidak setanding. - Beralih ke kedudukan 8. Bandingkan
rch" dengan "substring". Tiada padanan. - Beralih ke kedudukan 9. Bandingkan
ch wdengan "substring". Tidak setanding. - Beralih ke kedudukan 10. Bandingkan
h widengan "substring". Tidak setanding. - Beralih ke kedudukan 11. Bandingkan "
witdengan "substring". Tiada padanan. - Beralih ke kedudukan 12. Bandingkan
withdengan "substring". Tidak setanding. - Beralih ke kedudukan 13. Bandingkan
ithidengan "substring". Tidak setanding. - Beralih ke kedudukan 14. Bandingkan
thindengan "substring". Tidak setanding. - Beralih ke kedudukan 15. Bandingkan
hinndengan "substring". Tidak setanding. - Beralih ke kedudukan 16. Bandingkan
in tdengan "substring". Tidak setanding. - Beralih ke kedudukan 17. Bandingkan
n thdengan "substring". Tidak setanding. - Beralih ke kedudukan 18. Bandingkan "
thidengan "substring". Tiada padanan. - Beralih ke kedudukan 19. Bandingkan
thisdengan "substring". Tidak setanding. - Beralih ke kedudukan 20. Bandingkan
his" dengan "substring". Tiada padanan. - Beralih ke kedudukan 21. Bandingkan
is tdengan "substring". Tidak setanding. - Beralih ke kedudukan 22. Bandingkan
s tedengan "substring". Tidak setanding. - Beralih ke kedudukan 23. Bandingkan
ubstdengan "substring". Tidak setanding. - Beralih ke kedudukan 24. Bandingkan
bstrdengan "substring". Tidak setanding. - Beralih ke kedudukan 25. Bandingkan
stredengan "substring". Tidak setanding. - Beralih ke kedudukan 26. Bandingkan
trindengan "substring". Tidak setanding. - Beralih ke kedudukan 27. Bandingkan
ringdengan "substring". Perlawanan ditemui, rekod kedudukan 27.
Substring "substring" ditemui pada kedudukan 27 dalam teks.
Contoh Kod dalam 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;
}
Dalam contoh ini, textSearch fungsi digunakan untuk mencari kedudukan subrentetan "substring" dalam teks. Keputusan akan menjadi vektor yang mengandungi kedudukan permulaan perlawanan.

