Dynaamista hakualgoritmia, joka tunnetaan myös nimellä "hae kirjoittaessasi" -algoritmi, käytetään yleisesti ominaisuuksien, kuten automaattisen täydennyksen, toteuttamiseen hakupalkeissa. Tämä algoritmi tarjoaa reaaliaikaisia ehdotuksia käyttäjän syötteen ja käytettävissä olevien tietojen perusteella.
Kuinka se toimii
- Aloita tietojoukolla, joka sisältää luettelon kohteista(esim. sanat, nimet tai tuotteet).
- Kun käyttäjä kirjoittaa jokaisen merkin, päivitä hakukysely.
- Suodata tietojoukko nykyisen hakukyselyn perusteella.
- Näytä suodatetut tulokset käyttäjälle reaaliajassa.
Esimerkki
Harkitse ohjelmointikielien tietojoukkoa: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- Käyttäjä kirjoittaa "C". Suodatetut tulokset: ["C", "C++"].
- Käyttäjä kirjoittaa "C++". Suodatetut tulokset: ["C++"].
- Käyttäjä kirjoittaa " Java ". Suodatetut tulokset: [" Java ", " JavaScript "].
- Käyttäjä kirjoittaa "Py". Suodatetut tulokset: [" Python "].
- Käyttäjä kirjoittaa "Jav". Suodatetut tulokset: [" Java ", " JavaScript "].
Esimerkkikoodi C++:ssa
#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;
}
Tässä esimerkissä dynamicSearch
funktio ottaa syötteinä ohjelmointikielten tietojoukon ja käyttäjän kyselyn. Se palauttaa ehdotuksia nykyisen kyselyn perusteella. Kun käyttäjä kirjoittaa merkkejä, algoritmi suodattaa tietojoukon ja näyttää reaaliaikaisia ehdotuksia.
Huomautus: Dynaamisen haun varsinainen toteutus voi olla monimutkaisempaa, ja siihen voi liittyä tekniikoita, kuten trie-rakenteita tai tehokasta suurten tietojoukkojen indeksointia.