इस ट्यूटोरियल में, हम हैशिंग का उपयोग करके किसी ऐरे को उसके घटे हुए रूप में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा काम दिए गए एरे को उसके छोटे रूप में बदलना है जैसे कि इसमें केवल 0 से लेकर n-1 तक के तत्व हों।
उदाहरण
#include <bits/stdc++.h> using namespace std; //converting array to its reduced form void convert(int arr[], int n){ // copying the elements of array int temp[n]; memcpy(temp, arr, n*sizeof(int)); sort(temp, temp + n); //creating a hash table unordered_map<int, int> umap; int val = 0; for (int i = 0; i < n; i++) umap[temp[i]] = val++; //putting values in the hash table 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