ડાયનેમિક સર્ચ અલ્ગોરિધમ, જેને "સર્ચ-એઝ-યુ-ટાઈપ" અલ્ગોરિધમ તરીકે પણ ઓળખવામાં આવે છે, તેનો ઉપયોગ સામાન્ય રીતે શોધ બારમાં સ્વતઃપૂર્ણ જેવી સુવિધાઓને લાગુ કરવા માટે થાય છે. આ અલ્ગોરિધમ વપરાશકર્તાના ઇનપુટ અને ઉપલબ્ધ ડેટાના આધારે રીઅલ-ટાઇમ સૂચનો પ્રદાન કરે છે.
તે કેવી રીતે કામ કરે છે
- આઇટમ્સની સૂચિ ધરાવતા ડેટાસેટથી પ્રારંભ કરો(દા.ત., શબ્દો, નામ અથવા ઉત્પાદનો).
- જેમ જેમ વપરાશકર્તા દરેક અક્ષર ટાઇપ કરે છે, તેમ શોધ ક્વેરી અપડેટ કરો.
- વર્તમાન શોધ ક્વેરી પર આધારિત ડેટાસેટને ફિલ્ટર કરો.
- રીઅલ-ટાઇમમાં વપરાશકર્તાને ફિલ્ટર કરેલા પરિણામો પ્રદર્શિત કરો.
ઉદાહરણ
પ્રોગ્રામિંગ ભાષાઓના ડેટાસેટને ધ્યાનમાં લો: ["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
ફંક્શન પ્રોગ્રામિંગ ભાષાઓનો ડેટાસેટ અને ઇનપુટ તરીકે વપરાશકર્તા ક્વેરી લે છે. તે વર્તમાન ક્વેરી પર આધારિત સૂચનો પરત કરે છે. જેમ જેમ વપરાશકર્તા અક્ષરો લખે છે, અલ્ગોરિધમ ડેટાસેટને ફિલ્ટર કરે છે અને રીઅલ-ટાઇમ સૂચનો દર્શાવે છે.
નોંધ: ડાયનેમિક શોધનું વાસ્તવિક અમલીકરણ વધુ જટિલ હોઈ શકે છે, જેમાં ટ્રાય સ્ટ્રક્ચર્સ અથવા મોટા ડેટાસેટ્સ માટે કાર્યક્ષમ અનુક્રમણિકા જેવી તકનીકોનો સમાવેશ થાય છે.