C++의 동적 검색 (Dynamic Search) 알고리즘- 설명, 예제 및 코드

"입력한 대로 검색" 알고리즘이라고도 하는 동적 검색 알고리즘은 일반적으로 검색 표시줄의 자동 완성과 같은 기능을 구현하는 데 사용됩니다. 이 알고리즘은 사용자의 입력과 사용 가능한 데이터를 기반으로 실시간 제안을 제공합니다.

작동 방식

  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 함수는 프로그래밍 언어의 데이터 세트와 사용자 쿼리를 입력으로 사용합니다. 현재 쿼리를 기반으로 제안을 반환합니다. 사용자가 문자를 입력하면 알고리즘이 데이터 세트를 필터링하고 실시간 제안을 표시합니다.

참고: 동적 검색의 실제 구현은 트리 구조 또는 대규모 데이터 세트에 대한 효율적인 인덱싱과 같은 기술을 포함하여 더 복잡할 수 있습니다.