Algoritma carian dinamik, juga dikenali sebagai algoritma "cari-sebagai-jenis-anda", biasanya digunakan untuk melaksanakan ciri seperti autolengkap dalam bar carian. Algoritma ini menyediakan cadangan masa nyata berdasarkan input pengguna dan data yang tersedia.
Bagaimana ia berfungsi
- Mulakan dengan set data yang mengandungi senarai item(cth, perkataan, nama atau produk).
- Semasa pengguna menaip setiap aksara, kemas kini pertanyaan carian.
- Tapis set data berdasarkan pertanyaan carian semasa.
- Paparkan hasil yang ditapis kepada pengguna dalam masa nyata.
Contoh
Pertimbangkan set data bahasa pengaturcaraan: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- Jenis pengguna "C". Hasil yang ditapis: ["C", "C++"].
- Jenis pengguna "C++". Hasil yang ditapis: ["C++"].
- Jenis pengguna " Java ". Hasil yang ditapis: [" Java ", " JavaScript "].
- Jenis pengguna "Py". Hasil yang ditapis: [" Python "].
- Jenis pengguna "Jav". Hasil yang ditapis: [" Java ", " JavaScript "].
Contoh Kod dalam C++
#include <iostream>
#include <vector>
#include <string>
std::vector<std::string> dynamicSearch(const std::vector<std::string>& dataset, const std::string& query) {
std::vector<std::string> results;
for(const std::string& item: dataset) {
if(item.find(query) != std::string::npos) {
results.push_back(item);
}
}
return results;
}
int main() {
std::vector<std::string> programmingLanguages = {"C", "C++", "Java", "Python", "JavaScript", "Ruby", "Swift"};
std::string userQuery = "Jav";
std::vector<std::string> suggestions = dynamicSearch(programmingLanguages, userQuery);
std::cout << "Suggestions for query '" << userQuery << "': ";
for(const std::string& suggestion: suggestions) {
std::cout << suggestion << ";
}
std::cout << std::endl;
return 0;
}
Dalam contoh ini, dynamicSearch
fungsi mengambil set data bahasa pengaturcaraan dan pertanyaan pengguna sebagai input. Ia mengembalikan cadangan berdasarkan pertanyaan semasa. Semasa pengguna menaip aksara, algoritma menapis set data dan memaparkan cadangan masa nyata.
Nota: Pelaksanaan sebenar carian dinamik boleh menjadi lebih kompleks, melibatkan teknik seperti struktur percubaan atau pengindeksan yang cekap untuk set data yang besar.