Algoritmul de căutare dinamică, cunoscut și sub denumirea de algoritm „căutare pe măsură ce tastați”, este folosit în mod obișnuit pentru a implementa funcții precum completarea automată în barele de căutare. Acest algoritm oferă sugestii în timp real bazate pe intrarea utilizatorului și pe datele disponibile.
Cum functioneaza
- Începeți cu un set de date care conține o listă de articole(de exemplu, cuvinte, nume sau produse).
- Pe măsură ce utilizatorul introduce fiecare caracter, actualizați interogarea de căutare.
- Filtrați setul de date în funcție de interogarea de căutare curentă.
- Afișați rezultatele filtrate pentru utilizator în timp real.
Exemplu
Luați în considerare un set de date de limbaje de programare: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- Tipuri de utilizator „C”. Rezultate filtrate: ["C", "C++"].
- Tipuri de utilizator „C++”. Rezultate filtrate: [„C++”].
- Tipuri de utilizator " Java ". Rezultate filtrate: [" Java ", " JavaScript "].
- Tipuri de utilizator „Py”. Rezultate filtrate: [" Python "].
- Tipuri de utilizator „Jav”. Rezultate filtrate: [" Java ", " JavaScript "].
Exemplu de cod în 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;
}
În acest exemplu, dynamicSearch
funcția ia ca intrări un set de date de limbaje de programare și o interogare a utilizatorului. Returnează sugestii bazate pe interogarea curentă. Pe măsură ce utilizatorul introduce caractere, algoritmul filtrează setul de date și afișează sugestii în timp real.
Notă: implementarea efectivă a căutării dinamice poate fi mai complexă, implicând tehnici precum structuri trie sau indexare eficientă pentru seturi de date mari.