C++ मा बहु-वस्तु खोज (Multiple-Item Search) एल्गोरिदम- व्याख्या, उदाहरण, र कोड

बहु-वस्तु खोज एल्गोरिथ्म सूचीमा एक विशिष्ट तत्वको सबै घटनाहरू फेला पार्न प्रयोग गरिन्छ। एकल-वस्तु खोज एल्गोरिदमहरूको विपरीत, यो दृष्टिकोणले लक्ष्य तत्वको बहु घटनाहरूको ट्रयाक राख्छ र तिनीहरूको स्थितिहरूको सूची फर्काउँछ।

यो कसरी काम गर्दछ

  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 को सबै घटनाहरू फेला पार्न प्रकार्य प्रयोग गरिन्छ। नतिजा सबै घटनाहरूको स्थितिहरू समावेश गर्ने भेक्टर हुनेछ(स्थितिहरू ० बाट सुरु हुन्छ)।