बहु-वस्तु खोज एल्गोरिथ्म सूचीमा एक विशिष्ट तत्वको सबै घटनाहरू फेला पार्न प्रयोग गरिन्छ। एकल-वस्तु खोज एल्गोरिदमहरूको विपरीत, यो दृष्टिकोणले लक्ष्य तत्वको बहु घटनाहरूको ट्रयाक राख्छ र तिनीहरूको स्थितिहरूको सूची फर्काउँछ।
यो कसरी काम गर्दछ
- सूचीको सुरुबाट सुरु गर्नुहोस्।
- सूचीमा प्रत्येक तत्व मार्फत दोहोर्याउनुहोस्।
- हालको तत्वलाई लक्ष्य मानसँग तुलना गर्नुहोस्।
- यदि हालको तत्व लक्ष्य मान बराबर छ भने, यसको स्थिति रेकर्ड गर्नुहोस्।
- अर्को तत्वमा जारी राख्नुहोस् र 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 को सबै घटनाहरू फेला पार्न प्रकार्य प्रयोग गरिन्छ। नतिजा सबै घटनाहरूको स्थितिहरू समावेश गर्ने भेक्टर हुनेछ(स्थितिहरू ० बाट सुरु हुन्छ)।