(Multiple-Item Search) C++ मध्ये एकाधिक-आयटम शोध अल्गोरिदम- स्पष्टीकरण, उदाहरण आणि कोड

एकाधिक-आयटम शोध अल्गोरिदमचा वापर सूचीमधील विशिष्ट घटकाच्या सर्व घटना शोधण्यासाठी केला जातो. सिंगल-आयटम शोध अल्गोरिदमच्या विपरीत, हा दृष्टीकोन लक्ष्य घटकाच्या एकाधिक घटनांचा मागोवा ठेवतो आणि त्यांच्या स्थानांची सूची देतो.

हे कसे कार्य करते

  1. सूचीच्या सुरुवातीपासून प्रारंभ करा.
  2. सूचीतील प्रत्येक घटकाद्वारे पुनरावृत्ती करा.
  3. लक्ष्य मूल्यासह वर्तमान घटकाची तुलना करा.
  4. वर्तमान घटक लक्ष्य मूल्याच्या बरोबरीने असल्यास, त्याचे स्थान रेकॉर्ड करा.
  5. पुढील घटकावर जा आणि चरण 3-4 पुन्हा करा.
  6. संपूर्ण सूचीमधून पुनरावृत्ती केल्यानंतर, रेकॉर्ड केलेल्या स्थानांची यादी परत करा.

उदाहरण

चला पूर्णांकांची यादी विचारात घेऊ आणि आम्हाला 23 क्रमांकाच्या सर्व घटना शोधायच्या आहेत.

सूची: {12, 23, 45, 23, 56, 23, 89, 90}

  1. सुरुवातीपासून प्रारंभ करा: 12. इच्छित संख्या नाही.
  2. पुढील घटकाकडे जा: 23. जुळणी सापडली, स्थिती 1 म्हणून रेकॉर्ड करा.
  3. पुढील घटकाकडे जा: 45. इच्छित संख्या नाही.
  4. पुढील घटकाकडे जा: 23. जुळणी सापडली, स्थिती 3 म्हणून रेकॉर्ड करा.
  5. पुढील घटकाकडे जा: 56. इच्छित संख्या नाही.
  6. पुढील घटकाकडे जा: 23. जुळणी सापडली, स्थिती 5 म्हणून रेकॉर्ड करा.
  7. पुढील घटकाकडे जा: 89. इच्छित संख्या नाही.
  8. पुढील घटकाकडे जा: 90. इच्छित संख्या नाही.
  9. पुनरावृत्ती केल्यानंतर, स्थानांची यादी परत करा: [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 पासून सुरू होते).