7-63 冒泡的交换次数
现有一个含有n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,使用冒泡排序需要交换多少次?例如,1,2,3,5,4,我们只需要交换一次,将4和5交换即可。
输入格式:
第一行输入n(n≤100),第二行依次输入n个整数
输出格式:
对每一组输入,在一行中输出交换的次数。
输入样例:
5
1 2 3 5 4
输出样例:
1
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下:
#include<stdio.h>
int main()
{
int i,j,cnt=0,t,n;
int s[100];
scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",&s[i]);
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(s[j]>s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
cnt++;
}
}
}
printf("%d",cnt);
return 0;
}