Algoritmi Dinamik i Kërkimit (Dynamic Search) në C++- Shpjegim, Shembull dhe Kodi

Algoritmi dinamik i kërkimit, i njohur gjithashtu si algoritmi "kërko-si-lloji", përdoret zakonisht për të zbatuar veçori si plotësimi automatik në shiritat e kërkimit. Ky algoritëm ofron sugjerime në kohë reale bazuar në të dhënat e përdoruesit dhe të dhënat e disponueshme.

Si punon

  1. Filloni me një grup të dhënash që përmban një listë artikujsh(p.sh., fjalë, emra ose produkte).
  2. Ndërsa përdoruesi shkruan çdo karakter, përditësoni pyetjen e kërkimit.
  3. Filtro grupin e të dhënave bazuar në pyetjen aktuale të kërkimit.
  4. Shfaq rezultatet e filtruara te përdoruesi në kohë reale.

Shembull

Konsideroni një grup të dhënash të gjuhëve programuese: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].

  1. Llojet e përdoruesve "C". Rezultatet e filtruara: ["C", "C++"].
  2. Llojet e përdoruesve "C++". Rezultatet e filtruara: ["C++"].
  3. Llojet e përdoruesve " Java ". Rezultatet e filtruara: [" Java ", " JavaScript "].
  4. Llojet e përdoruesve "Py". Rezultatet e filtruara: [" Python "].
  5. Llojet e përdoruesve "Jav". Rezultatet e filtruara: [" Java ", " JavaScript "].

Shembull Kodi në 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;  
}  

Në këtë shembull, dynamicSearch funksioni merr një grup të dhënash të gjuhëve programuese dhe një pyetje të përdoruesit si hyrje. Ai kthen sugjerime bazuar në pyetjen aktuale. Ndërsa përdoruesi shkruan karaktere, algoritmi filtron grupin e të dhënave dhe shfaq sugjerime në kohë reale.

Shënim: Zbatimi aktual i kërkimit dinamik mund të jetë më kompleks, duke përfshirë teknika si strukturat e testimit ose indeksimin efikas për grupe të dhënash të mëdha.