एकाधिक-आइटम खोज एल्गोरिदम का उपयोग किसी सूची में किसी विशिष्ट तत्व की सभी घटनाओं को खोजने के लिए किया जाता है। एकल-आइटम खोज एल्गोरिदम के विपरीत, यह दृष्टिकोण लक्ष्य तत्व की कई घटनाओं पर नज़र रखता है और उनकी स्थिति की एक सूची लौटाता है।
यह काम किस प्रकार करता है
- सूची की शुरुआत से शुरू करें.
- सूची में प्रत्येक तत्व के माध्यम से पुनरावृति करें।
- वर्तमान तत्व की तुलना लक्ष्य मान से करें।
- यदि वर्तमान तत्व लक्ष्य मान के बराबर है, तो उसकी स्थिति रिकॉर्ड करें।
- अगले तत्व पर जारी रखें और चरण 3-4 दोहराएं।
- पूरी सूची को दोहराने के बाद, रिकॉर्ड किए गए पदों की सूची लौटाएँ।
उदाहरण
आइए पूर्णांकों की एक सूची पर विचार करें और हम संख्या 23 की सभी घटनाएँ ज्ञात करना चाहते हैं।
सूची: {12, 23, 45, 23, 56, 23, 89, 90}
- आरंभ से प्रारंभ करें: 12. वांछित संख्या नहीं.
- अगले तत्व पर जाएँ: 23. मिलान मिला, स्थिति को 1 के रूप में रिकॉर्ड करें।
- अगले तत्व पर जाएँ: 45. वांछित संख्या नहीं.
- अगले तत्व पर जाएँ: 23. मिलान मिला, स्थिति 3 के रूप में रिकॉर्ड करें।
- अगले तत्व पर जाएँ: 56. वांछित संख्या नहीं।
- अगले तत्व पर जाएँ: 23. मिलान मिला, स्थिति 5 के रूप में रिकॉर्ड करें।
- अगले तत्व पर जाएँ: 89. वांछित संख्या नहीं।
- अगले तत्व पर जाएँ: 90। वांछित संख्या नहीं।
- पुनरावृत्त करने के बाद, पदों की एक सूची लौटाएँ: [1, 3, 5]।
C++ में उदाहरण कोड
#include <iostream>
#include <vector>
std::vector<int> multipleItemSearch(const std::vector<int>& arr, int target) {
std::vector<int> positions;
for(int i = 0; i < arr.size(); ++i) {
if(arr[i] == target) {
positions.push_back(i);
}
}
return positions;
}
int main() {
std::vector<int> numbers = {12, 23, 45, 23, 56, 23, 89, 90};
int target = 23;
std::vector<int> result = multipleItemSearch(numbers, target);
std::cout << "Occurrences of " << target << " found at positions: ";
for(int pos: result) {
std::cout << pos << ";
}
std::cout << std::endl;
return 0;
}
दिए गए उदाहरण में, multipleItemSearch
फ़ंक्शन का उपयोग पूर्णांकों की सूची में संख्या 23 की सभी घटनाओं को खोजने के लिए किया जाता है। परिणाम एक वेक्टर होगा जिसमें सभी घटनाओं की स्थितियाँ शामिल होंगी(स्थितियाँ 0 से शुरू होती हैं)।