Αλγόριθμος δυναμικής αναζήτησης (Dynamic Search) σε C++- Επεξήγηση, Παράδειγμα και Κώδικας

Ο αλγόριθμος δυναμικής αναζήτησης, γνωστός και ως αλγόριθμος "αναζήτηση ως τύπου", χρησιμοποιείται συνήθως για την εφαρμογή λειτουργιών όπως η αυτόματη συμπλήρωση στις γραμμές αναζήτησης. Αυτός ο αλγόριθμος παρέχει προτάσεις σε πραγματικό χρόνο με βάση τα δεδομένα του χρήστη και τα διαθέσιμα δεδομένα.

Πως δουλεύει

  1. Ξεκινήστε με ένα σύνολο δεδομένων που περιέχει μια λίστα στοιχείων(π.χ. λέξεις, ονόματα ή προϊόντα).
  2. Καθώς ο χρήστης πληκτρολογεί κάθε χαρακτήρα, ενημερώστε το ερώτημα αναζήτησης.
  3. Φιλτράρετε το σύνολο δεδομένων με βάση το τρέχον ερώτημα αναζήτησης.
  4. Εμφανίστε τα φιλτραρισμένα αποτελέσματα στον χρήστη σε πραγματικό χρόνο.

Παράδειγμα

Εξετάστε ένα σύνολο δεδομένων γλωσσών προγραμματισμού: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].

  1. Τύποι χρήστη "C". Φιλτραρισμένα αποτελέσματα: ["C", "C++"].
  2. Τύποι χρήστη "C++". Φιλτραρισμένα αποτελέσματα: ["C++"].
  3. Τύποι χρηστών " Java ". Φιλτραρισμένα αποτελέσματα: [" Java ", " JavaScript "].
  4. Τύποι χρήστη "Py". Φιλτραρισμένα αποτελέσματα: [" Python "].
  5. Τύποι χρήστη "Jav". Φιλτραρισμένα αποτελέσματα: [" Java ", " JavaScript "].

Παράδειγμα κώδικα σε 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;  
}  

Σε αυτό το παράδειγμα, η dynamicSearch συνάρτηση λαμβάνει ως είσοδο ένα σύνολο δεδομένων γλωσσών προγραμματισμού και ένα ερώτημα χρήστη. Επιστρέφει προτάσεις με βάση το τρέχον ερώτημα. Καθώς ο χρήστης πληκτρολογεί χαρακτήρες, ο αλγόριθμος φιλτράρει το σύνολο δεδομένων και εμφανίζει προτάσεις σε πραγματικό χρόνο.

Σημείωση: Η πραγματική υλοποίηση της δυναμικής αναζήτησης μπορεί να είναι πιο περίπλοκη, καθώς περιλαμβάνει τεχνικές όπως δομές δοκιμασίας ή αποτελεσματική ευρετηρίαση για μεγάλα σύνολα δεδομένων.