Den dynamiske søkealgoritmen, også kjent som "søk-som-du-skriver"-algoritmen, brukes ofte til å implementere funksjoner som autofullføring i søkefelt. Denne algoritmen gir sanntidsforslag basert på brukerens input og tilgjengelige data.
Hvordan det fungerer
- Start med et datasett som inneholder en liste over elementer(f.eks. ord, navn eller produkter).
- Når brukeren skriver inn hvert tegn, oppdater søket.
- Filtrer datasettet basert på gjeldende søket.
- Vis de filtrerte resultatene til brukeren i sanntid.
Eksempel
Tenk på et datasett med programmeringsspråk: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- Brukertyper "C". Filtrerte resultater: ["C", "C++"].
- Brukeren skriver "C++". Filtrerte resultater: ["C++"].
- Brukertyper " Java ". Filtrerte resultater: [" Java ", " JavaScript "].
- Brukertyper "Py". Filtrerte resultater: [" Python "].
- Brukeren skriver "Jav". Filtrerte resultater: [" Java ", " JavaScript "].
Eksempelkode i 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;
}
I dette eksemplet dynamicSearch
tar funksjonen et datasett med programmeringsspråk og en brukerspørring som input. Den returnerer forslag basert på gjeldende spørring. Når brukeren skriver tegn, filtrerer algoritmen datasettet og viser sanntidsforslag.
Merk: Den faktiske implementeringen av dynamisk søk kan være mer kompleks, og involverer teknikker som prøvestrukturer eller effektiv indeksering for store datasett.