Algorytm wyszukiwania dynamicznego, znany również jako algorytm wyszukiwania w miarę wpisywania, jest powszechnie używany do implementowania funkcji, takich jak autouzupełnianie w paskach wyszukiwania. Algorytm ten zapewnia sugestie w czasie rzeczywistym na podstawie danych wprowadzonych przez użytkownika i dostępnych danych.
Jak to działa
- Zacznij od zestawu danych zawierającego listę elementów(np. słowa, nazwy lub produkty).
- Gdy użytkownik wpisze każdy znak, zaktualizuj zapytanie wyszukiwania.
- Filtruj zestaw danych na podstawie bieżącego zapytania wyszukiwania.
- Wyświetlaj przefiltrowane wyniki użytkownikowi w czasie rzeczywistym.
Przykład
Rozważ zbiór danych języków programowania: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- Typy użytkowników „C”. Filtrowane wyniki: ["C", "C++"].
- Typ użytkownika „C++”. Filtrowane wyniki: ["C++"].
- Typy użytkowników „ Java ”. Filtrowane wyniki: [" Java ", " JavaScript "].
- Typy użytkowników „Py”. Filtrowane wyniki: [" Python "].
- Typy użytkowników „Jav”. Filtrowane wyniki: [" Java ", " JavaScript "].
Przykładowy kod w 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;
}
W tym przykładzie dynamicSearch
funkcja pobiera zestaw danych języków programowania i zapytanie użytkownika jako dane wejściowe. Zwraca sugestie na podstawie bieżącego zapytania. Gdy użytkownik wpisuje znaki, algorytm filtruje zestaw danych i wyświetla sugestie w czasie rzeczywistym.
Uwaga: Rzeczywista implementacja wyszukiwania dynamicznego może być bardziej złożona i obejmować techniki, takie jak struktury trie lub efektywne indeksowanie dużych zestawów danych.