এই টিউটোরিয়ালে, আমরা হ্যাশিং ব্যবহার করে অ্যারেকে এর রিডিউসড ফর্মে কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব।
এই জন্য আমাদের একটি অ্যারে দেওয়া থাকবে। আমাদের কাজ হলো দেওয়া অ্যারেটিকে এর রিডিউসড ফর্মে কনভার্ট করা যাতে সেটি শুধু 0 থেকে n-1 পর্যন্ত এলিমেন্ট ধারণ করে।
C++ উদাহরণ
#include <bits/stdc++.h> using namespace std; // অ্যারেকে রিডিউসড ফর্মে কনভার্ট করা void convert(int arr[], int n){ // অ্যারের এলিমেন্ট কপি করা int temp[n]; memcpy(temp, arr, n*sizeof(int)); sort(temp, temp + n); // হ্যাশ টেবিল তৈরি করা unordered_map<int, int> umap; int val = 0; for (int i = 0; i < n; i++) umap[temp[i]] = val++; // হ্যাশ টেবিলে ভ্যালু রাখা for (int i = 0; i < n; i++) arr[i] = umap[arr[i]]; } void print_array(int arr[], int n) { for (int i=0; i<n; i++) cout << arr[i] << " "; } int main(){ int arr[] = {10, 20, 15, 12, 11, 50}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Given Array :\n"; print_array(arr, n); convert(arr , n); cout << "\nConverted Array:\n"; print_array(arr, n); return 0; }আউটপুট
Given Array: 10 20 15 12 11 50 Converted Array: 0 4 3 2 1 5