Dynamisk søgealgoritme (Dynamic Search) i C++- Forklaring, eksempel og kode

Den dynamiske søgealgoritme, også kendt som "søg-som-du-skriver"-algoritmen, bruges almindeligvis til at implementere funktioner som autofuldførelse i søgelinjer. Denne algoritme giver forslag i realtid baseret på brugerens input og de tilgængelige data.

Hvordan det virker

  1. Start med et datasæt, der indeholder en liste over elementer(f.eks. ord, navne eller produkter).
  2. Når brugeren indtaster hvert tegn, skal du opdatere søgeforespørgslen.
  3. Filtrer datasættet baseret på den aktuelle søgeforespørgsel.
  4. Vis de filtrerede resultater til brugeren i realtid.

Eksempel

Overvej et datasæt med programmeringssprog: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].

  1. Brugertyper "C". Filtrerede resultater: ["C", "C++"].
  2. Brugertyper "C++". Filtrerede resultater: ["C++"].
  3. Brugertyper " Java ". Filtrerede resultater: [" Java ", " JavaScript "].
  4. Brugertyper "Py". Filtrerede resultater: [" Python "].
  5. Brugeren skriver "Jav". Filtrerede 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 eksempel dynamicSearch tager funktionen et datasæt af programmeringssprog og en brugerforespørgsel som input. Den returnerer forslag baseret på den aktuelle forespørgsel. Når brugeren skriver tegn, filtrerer algoritmen datasættet og viser forslag i realtid.

Bemærk: Den faktiske implementering af dynamisk søgning kan være mere kompleks og involverer teknikker som prøvestrukturer eller effektiv indeksering for store datasæt.