এই টিউটোরিয়ালে, আমরা C++ STL-এ সেট ব্যবহার করে বিপরীত গণনা করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।
ইনভার্সন কাউন্ট হল একটি পরিমাপ যে অ্যারেটি সম্পূর্ণভাবে সাজাতে হবে। যদি অ্যারেটি ইতিমধ্যে সাজানো থাকে, তাহলে বিপরীত সংখ্যা হবে 0৷
৷উদাহরণ
#include<bits/stdc++.h>
using namespace std;
//returning inversion count
int get_Icount(int arr[],int n){
multiset<int> set1;
set1.insert(arr[0]);
int invcount = 0; //initializing result
multiset<int>::iterator itset1;
for (int i=1; i<n; i++){
set1.insert(arr[i]);
itset1 = set1.upper_bound(arr[i]);
invcount += distance(itset1, set1.end());
}
return invcount;
}
int main()
{
int arr[] = {8, 4, 2, 1};
int n = sizeof(arr)/sizeof(int);
cout << "Number of inversions count are : "<< get_Icount(arr,n);
return 0;
} আউটপুট
Number of inversions count are : 6