描述
输入n个数,判断有多少对逆序数。
逆序数: 第 i 个数后面某个数比第 i 个数小,则这两个数就是一对逆序数。
例如2 4 3 1中的逆序数有(2,1),(4,3),(4,1),(3,1),即其有4对逆序数。
输入
第一行一个整数n,第二行n个整数。(1<=n<=100)
输出
输出有多少对逆序数。
输入样例 输出样例
4 2
2 1 4 3
AC代码
#include <stdio.h>
int main() {
int n = 0,count = 0;
int arr[50];
//输入一个数n,然后输入n个数,并赋值给数组
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//判断逆序数有多少个,用count记录
for (int x = 0; x < n; x++)
{
for (int y = x + 1; y < n; y++)
{
if (arr[x] > arr[y])
{
count++;
}
}
}
printf("%d", count);
}