Dinaminės paieškos (Dynamic Search) algoritmas C++ kalboje – paaiškinimas, pavyzdys ir kodas

Dinaminis paieškos algoritmas, taip pat žinomas kaip paieškos, kai rašote, algoritmas dažniausiai naudojamas tokioms funkcijoms kaip automatinis užbaigimas paieškos juostose įdiegti. Šis algoritmas pateikia pasiūlymus realiuoju laiku, pagrįstus vartotojo įvestimi ir turimais duomenimis.

Kaip tai veikia

  1. Pradėkite nuo duomenų rinkinio, kuriame yra elementų sąrašas(pvz., žodžiai, pavadinimai ar produktai).
  2. Kai vartotojas įveda kiekvieną simbolį, atnaujinkite paieškos užklausą.
  3. Filtruokite duomenų rinkinį pagal dabartinę paieškos užklausą.
  4. Rodyti filtruotus rezultatus vartotojui realiuoju laiku.

Pavyzdys

Apsvarstykite programavimo kalbų duomenų rinkinį: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].

  1. Vartotojas įveda „C“. Filtruoti rezultatai: ["C", "C++"].
  2. Vartotojas įveda „C++“. Filtruoti rezultatai: ["C++"].
  3. Vartotojų tipai „ Java “. Filtruoti rezultatai: [" Java ", " JavaScript "].
  4. Vartotojas įveda „Py“. Filtruoti rezultatai: [" Python "].
  5. Vartotojas įveda „Jav“. Filtruoti rezultatai: [" Java ", " JavaScript "].

Kodo pavyzdys 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;  
}  

Šiame pavyzdyje dynamicSearch funkcija kaip įvestis paima programavimo kalbų duomenų rinkinį ir vartotojo užklausą. Jis pateikia pasiūlymus pagal dabartinę užklausą. Kai vartotojas įveda simbolius, algoritmas filtruoja duomenų rinkinį ir pateikia pasiūlymus realiuoju laiku.

Pastaba: faktinis dinaminės paieškos įgyvendinimas gali būti sudėtingesnis, naudojant tokius metodus kaip bandomosios struktūros arba efektyvus didelių duomenų rinkinių indeksavimas.