დინამიური ძიების (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 ფუნქცია იღებს პროგრამირების ენების მონაცემთა ნაკრებს და მომხმარებლის მოთხოვნას, როგორც შეყვანის სახით. ის აბრუნებს წინადადებებს მიმდინარე მოთხოვნის საფუძველზე. როდესაც მომხმარებელი აკრიფებს სიმბოლოებს, ალგორითმი ფილტრავს მონაცემთა ბაზას და აჩვენებს რეალურ დროში შემოთავაზებებს.

შენიშვნა: დინამიური ძიების რეალური განხორციელება შეიძლება იყოს უფრო რთული, მოიცავდეს ტექნიკებს, როგორიცაა trie სტრუქტურები ან ეფექტური ინდექსირება დიდი მონაცემთა ნაკრებისთვის.