Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình chuyển đổi một mảng sang dạng rút gọn của nó bằng cách sử dụng các cặp vectơ.
Đối với điều này, chúng tôi sẽ được cung cấp một mảng. Nhiệm vụ của chúng ta là chuyển đổi mảng đã cho ở dạng rút gọn để nó chỉ chứa các phần tử từ 0 đến n-1.
Ví dụ
#include <bits/stdc++.h> using namespace std; //converting array to its reduced form void convert(int arr[], int n){ //creating a vector of pairs vector <pair<int, int> > v; //putting elements in vector //with their indexes for (int i = 0; i < n; i++) v.push_back(make_pair(arr[i], i)); sort(v.begin(), v.end()); for (int i=0; i<n; i++) arr[v[i].second] = i; } //printing the array 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 is :\n"; print_array(arr, n); convert(arr , n); cout << "\nConverted Array:\n"; print_array(arr, n); return 0; }
Đầu ra
Given Array : 10 20 15 12 11 50 Converted Array: 0 4 3 2 1 5