冒泡排序中数据交换的次数
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
听说过冒泡排序么?很好玩很暴力的一种排序方式,但对于小数据也是很实用的哦。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。
Input
输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N<100
Output
输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数。
Example Input
3
5 1 2 3 4 5
4 5 3 7 1
2 2 1
Example Output
0
4
1
#include<stdio.h>
int main()
{
int a, b, c[100], d, e, f[100]={0}, i ,g;
scanf("%d", &a);
for(b=0;b<a;b++)
{
i=b;
scanf("%d", &d);
for(g=0;g<d;g++)
{
scanf("%d", &c[g]);
}
for(g=0;g<d;g++)
{
for(e=0;e<g;e++)
{
if(c[e]>c[g])
{
f[i]++;
}
}
}
}
for(b=0;b<a;b++)
{
printf("%d\n",f[b]);
}
return 0;
}