使用 C++ STL set 計算逆序數
本教程中,我們將討論使用 C++ STL set 統計逆序數的程式。
逆序計數是對陣列完全排序程度的衡量。 如果陣列已排序,則逆序計數將為 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP