एकाधिक-आयटम शोध अल्गोरिदमचा वापर सूचीमधील विशिष्ट घटकाच्या सर्व घटना शोधण्यासाठी केला जातो. सिंगल-आयटम शोध अल्गोरिदमच्या विपरीत, हा दृष्टीकोन लक्ष्य घटकाच्या एकाधिक घटनांचा मागोवा ठेवतो आणि त्यांच्या स्थानांची सूची देतो.
हे कसे कार्य करते
- सूचीच्या सुरुवातीपासून प्रारंभ करा.
- सूचीतील प्रत्येक घटकाद्वारे पुनरावृत्ती करा.
- लक्ष्य मूल्यासह वर्तमान घटकाची तुलना करा.
- वर्तमान घटक लक्ष्य मूल्याच्या बरोबरीने असल्यास, त्याचे स्थान रेकॉर्ड करा.
- पुढील घटकावर जा आणि चरण 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 पासून सुरू होते).