You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need. For example, 1 2 3 5 4, we only need one operation : swap 5 and 4.嗯是逆序数也可以冒泡排序那个时候有想过逆序数但是不敢写一直都很弱加油呢Input The input consists of a number of test cases. Each case consists of two lines: the first line contains a positive integer n (n <= 1000); the next line contains a permutation of the n integers from 1 to n. OutputFor each case, output the minimum times need to sort it in ascending order on a single line. Sample InputSample Output 3 1 2 3 4 4 3 2 1 0 6#include<stdio.h> #define N 1000 int main() { int n; while(scanf("%d",&n)!=EOF) { int i,j,times=0; int a[N]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(a[i]>a[j]) times++; printf("%d\n",times); } return 0; }
HDU - 2689 (逆序数)
最新推荐文章于 2020-06-14 12:16:48 发布