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 নম্বরের সমস্ত উপস্থিতি খুঁজে পেতে ব্যবহৃত হয়। ফলাফলটি একটি ভেক্টর হবে যেখানে সমস্ত ঘটনার অবস্থান রয়েছে(পজিশন 0 থেকে শুরু হয়)।