Problem Description you want to processe a sequence of n distinct integers by swapping, adjacent sequence elements unti L 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 the 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.
Output for each case, output the minimum times need to sort it in ascending order on a single line.
Sample Input
3 1 2 3 4 4 3 2 1
Sample Output
0 6
It's a water problem. Write a bubble yourself and count the Times OK
#include <stdio.h>
int sort (int *a,int n)
{
int i,j,t,cnt = 0;
for (i = 0;i<n-1;i++) {for
(j = 0;j<n-1-i;j++)
{
if (a[j]>a[j+1])
{
t = a[j];
A[J] = a[j+1];
A[j+1] = t;
cnt++
;
}}} return cnt;
}
int main ()
{
int a[1005];
int n,i;
while (~SCANF ("%d", &n))
{for
(i = 0;i<n;i++)
scanf ("%d", &a[i]);
printf ("%d\n", Sort (a,n));
}
return 0;
}