冒泡排序

冒泡排序中数据交换的次数

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。

Input

输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N <= 100

Output

输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数。

Sample Input

3
5 1 2 3 4 5
4 5 3 7 1
2 2 1

Sample Output

0
4
1

Hint

Source

#include<stdio.h>
int main(){
int i,j,n,a[110],t,tt,count;
scanf("%d",&t);
while(t--){
count=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(a[j]>a[j+1]){
count++;
tt=a[j];
a[j]=a[j+1];
a[j+1]=tt;
}}
}

printf("%d\n",count);
}
return 0;


}
阅读更多
个人分类: 山东理工oj
上一篇累加加累加
下一篇第X个大的数(快排)
想对作者说点什么? 我来说一句

冒泡排序C# 冒泡排序

2011年04月20日 15KB 下载

C排序—— 一个简约的方法

2009年02月20日 404B 下载

C# ,冒泡排序,JAVA

2008年11月13日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭