इस ट्यूटोरियल में, हम हैशिंग का उपयोग करके सरणी को उसके कम रूप में परिवर्तित करने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा कार्य दी गई सरणी को उसके कम रूप में परिवर्तित करना है जैसे कि इसमें केवल 0 से n-1 तक के तत्व हों।
उदाहरण
#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