A dinamikus keresési algoritmust, más néven "keresés közben gépelni" algoritmust, gyakran használják olyan funkciók megvalósítására, mint az automatikus kiegészítés a keresősávokban. Ez az algoritmus valós idejű javaslatokat ad a felhasználó bevitele és a rendelkezésre álló adatok alapján.
Hogyan működik
- Kezdje egy tétellistát tartalmazó adatkészlettel(pl. szavak, nevek vagy termékek).
- Miközben a felhasználó beírja az egyes karaktereket, frissítse a keresési lekérdezést.
- Az adatkészlet szűrése az aktuális keresési lekérdezés alapján.
- A szűrt eredményeket valós időben jeleníti meg a felhasználó számára.
Példa
Tekintsünk egy programozási nyelv adatkészletét: ["C", "C++", " Java, " Python ", " JavaScript ", " Ruby ", " Swift "].
- A felhasználó "C"-t ír be. Szűrt találatok: ["C", "C++"].
- A felhasználó beírja a „C++”-t. Szűrt eredmények: ["C++"].
- A felhasználó beírja a következőt: " Java ". Szűrt találatok: [" Java ", " JavaScript "].
- A felhasználó beírja a „Py”-t. Szűrt találatok: [" Python "].
- A felhasználó beírja a „Jav”-t. Szűrt találatok: [" Java ", " JavaScript "].
Példakód C++ nyelven
#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;
}
Ebben a példában a dynamicSearch
függvény egy programozási nyelvek adatkészletét és egy felhasználói lekérdezést vesz be bemenetként. Javaslatokat ad vissza az aktuális lekérdezés alapján. Miközben a felhasználó karaktereket ír be, az algoritmus szűri az adatkészletet, és valós idejű javaslatokat jelenít meg.
Megjegyzés: A dinamikus keresés tényleges megvalósítása bonyolultabb lehet, és olyan technikákat foglalhat magában, mint a trie struktúrák vagy a nagy adatkészletek hatékony indexelése.