Dynamisk sökalgoritm (Dynamic Search) i C++- Förklaring, exempel och kod

Den dynamiska sökalgoritmen, även känd som "sök-som-du-skriver"-algoritmen, används vanligtvis för att implementera funktioner som autoslutförande i sökfälten. Denna algoritm ger förslag i realtid baserat på användarens input och tillgängliga data.

Hur det fungerar

  1. Börja med en datauppsättning som innehåller en lista med objekt(t.ex. ord, namn eller produkter).
  2. När användaren skriver varje tecken uppdaterar du sökfrågan.
  3. Filtrera datasetet baserat på den aktuella sökfrågan.
  4. Visa de filtrerade resultaten för användaren i realtid.

Exempel

Tänk på en datauppsättning av programmeringsspråk: ["C", "C++", ", ", ", " Java, Python " JavaScript " Ruby ] Swift.

  1. Användartyper "C". Filtrerade resultat: ["C", "C++"].
  2. Användaren skriver "C++". Filtrerade resultat: ["C++"].
  3. Användartyper " Java ". Filtrerade resultat: [" Java ", " JavaScript "].
  4. Användaren skriver "Py". Filtrerade resultat: [" Python "].
  5. Användaren skriver "Jav". Filtrerade resultat: [" Java ", " JavaScript "].

Exempelkod 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 det här exemplet dynamicSearch tar funktionen en datauppsättning av programmeringsspråk och en användarfråga som indata. Den returnerar förslag baserat på den aktuella frågan. När användaren skriver tecken filtrerar algoritmen datasetet och visar förslag i realtid.

Obs: Den faktiska implementeringen av dynamisk sökning kan vara mer komplex och involverar tekniker som försöksstrukturer eller effektiv indexering för stora datamängder.