Dynamisch zoekalgoritme (Dynamic Search) in C++- uitleg, voorbeeld en code

Het dynamische zoekalgoritme, ook wel bekend als het algoritme 'zoeken terwijl u typt', wordt vaak gebruikt om functies zoals automatisch aanvullen in zoekbalken te implementeren. Dit algoritme geeft real-time suggesties op basis van de input van de gebruiker en de beschikbare data.

Hoe het werkt

  1. Begin met een dataset die een lijst met items bevat(bijvoorbeeld woorden, namen of producten).
  2. Terwijl de gebruiker elk teken typt, werkt u de zoekopdracht bij.
  3. Filter de dataset op basis van de huidige zoekopdracht.
  4. Toon de gefilterde resultaten in realtime aan de gebruiker.

Voorbeeld

Beschouw een dataset van programmeertalen: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].

  1. Gebruiker typt "C". Gefilterde resultaten: ["C", "C++"].
  2. Gebruiker typt "C++". Gefilterde resultaten: ["C++"].
  3. Gebruiker typt " Java ". Gefilterde resultaten: [" Java ", " JavaScript "].
  4. Gebruiker typt "Py". Gefilterde resultaten: [" Python "].
  5. Gebruiker typt "Jav". Gefilterde resultaten: [" Java ", " JavaScript "].

Voorbeeldcode in 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;  
}  

In dit voorbeeld dynamicSearch neemt de functie een dataset van programmeertalen en een gebruikersquery als invoer. Het retourneert suggesties op basis van de huidige query. Terwijl de gebruiker karakters typt, filtert het algoritme de dataset en geeft real-time suggesties weer.

Opmerking: de daadwerkelijke implementatie van dynamisch zoeken kan complexer zijn, waarbij technieken zoals drie structuren of efficiënte indexering voor grote datasets betrokken zijn.