"입력한 대로 검색" 알고리즘이라고도 하는 동적 검색 알고리즘은 일반적으로 검색 표시줄의 자동 완성과 같은 기능을 구현하는 데 사용됩니다. 이 알고리즘은 사용자의 입력과 사용 가능한 데이터를 기반으로 실시간 제안을 제공합니다.
작동 방식
- 항목 목록(예: 단어, 이름 또는 제품)이 포함된 데이터 세트로 시작합니다.
- 사용자가 각 문자를 입력하면 검색 쿼리를 업데이트합니다.
- 현재 검색 쿼리를 기반으로 데이터 세트를 필터링합니다.
- 필터링된 결과를 실시간으로 사용자에게 표시합니다.
예
프로그래밍 언어의 데이터 세트를 고려하십시오: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "].
- 사용자는 "C"를 입력합니다. 필터링된 결과: ["C", "C++"].
- 사용자 유형 "C++". 필터링된 결과: ["C++"].
- 사용자 유형 " Java ". 필터링된 결과: [" Java ", " JavaScript "].
- 사용자는 "Py"를 입력합니다. 필터링된 결과: [" Python "].
- 사용자 유형 "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
함수는 프로그래밍 언어의 데이터 세트와 사용자 쿼리를 입력으로 사용합니다. 현재 쿼리를 기반으로 제안을 반환합니다. 사용자가 문자를 입력하면 알고리즘이 데이터 세트를 필터링하고 실시간 제안을 표시합니다.
참고: 동적 검색의 실제 구현은 트리 구조 또는 대규모 데이터 세트에 대한 효율적인 인덱싱과 같은 기술을 포함하여 더 복잡할 수 있습니다.