কম্পিউটার টিউটোরিয়াল

C++-এ অ্যারে এলিমেন্ট ফ্রিকোয়েন্সি গণনা: ভিজিটেড অ্যারে ও আনঅর্ডার্ড ম্যাপ

একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে যেখানে ডুপ্লিকেট মান আছে। প্রতিটি স্বতন্ত্র মানের ফ্রিকোয়েন্সি (কতবার এসেছে) গণনা করুন।

উদাহরণ

ইনপুট: [1, 1, 2, 3, 4, 1, 2, 3]

আউটপুট: 1:3, 2:2, 3:2, 4:1

পদ্ধতি ১: ভিজিটেড অ্যারে (O(n²)) - শিক্ষামূলক


void frequency(int arr[], int size) {
    bool visited[size] = {false};
    for (int i = 0; i < size; i++) {
        if (visited[i]) continue;
        int count = 1;
        for (int j = i+1; j < size; j++)
            if (arr[i] == arr[j]) {
                visited[j] = true;
                count++;
            }
        cout << arr[i] << ": " << count << endl;
    }
}

পদ্ধতি ২: আনঅর্ডার্ড ম্যাপ (O(n)) - প্রোডাকশন রেডি


#include 
using namespace std;

void frequency(int arr[], int size) {
    unordered_map freq;
    for (int i = 0; i < size; i++)
        freq[arr[i]]++;
    
    for (auto& p : freq)
        cout << p.first << ": " << p.second << endl;
}

int main() {
    int arr[] = {1, 2, 3, 1, 2, 3};
    int size = sizeof(arr)/sizeof(arr[0]);
    frequency(arr, size);
    return 0;
}

আউটপুট

1: 2
2: 2
3: 2

তুলনা

পদ্ধতিসময়স্পেসব্যবহার
ভিজিটেড অ্যারেO(n²)O(n)শিক্ষা/স্মল ইনপুট
অনঅর্ডার্ড ম্যাপO(n)O(n)প্রোডাকশন/বড় ইনপুট
সর্ট + লিনিয়ারO(n log n)O(1)নো একস্ট্রা স্পেস
  1. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফল বের করা

  2. C++ তে প্রাইম ফ্রিকোয়েন্সি والے অ্যারে উপাদান খুঁজে বের করা

  3. C++ প্রোগ্রাম: কাউন্টিং সর্ট বাস্তবায়ন

  4. পয়েন্টার ব্যবহার করে অ্যারে এলিমেন্ট অ্যাক্সেস করার C++ প্রোগ্রাম