逆序对个数
Posted 诸葛阵御
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆序对个数相关的知识,希望对你有一定的参考价值。
题目:
有一串数字,如果前面的数字比后面的数字大,那么就称这两个数为一对逆序对。
输入一个长度为n的数组,输出逆序对的个数。
也就是说问有多少对(i, j)满足1 <= i < j <= n,且aii > ajj。
1 <= n <= 1000,1 <= aii <= 10^9
输入格式:
第一行一个整数n,表示数组长度 接下来n行,每行一个整数aii,表示数组的内容。
输出格式:
输出一行一个数字,表示逆序对的个数。
样例输入:
4 4 3 1 2
样例输出:
5
#include <stdio.h>
int main()
{
int n;
long long int a[1100];
scanf ("%d",&n);
long long int sum=0;
for (int i=0;i<n;i++) {
scanf ("%lld\\n",&a[i]); //输入
}
for (int i=0;i<n;i++) {
for (int j=i+1;j<n;j++) {
if (a[i]>a[j]){
sum++; //计数
}
}
}
printf ("%d",sum);
return 0;
}
以上是关于逆序对个数的主要内容,如果未能解决你的问题,请参考以下文章