#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int *a,int n)
{
int bc=0;//比较次数
int jc=0;//交换次数
int i,j,temp;
int flag=0;
for(i=0;i <n-1;i++)
{
flag=0;
for(j=2;j<=n-i;j++)
{
if(a[j]<a[j-1])
{
swap(&a[j],&a[j-1]);
jc++;
flag=1;
}
bc++;
}
if(!flag) //如果没有交换,则说明排序完成
break;
}
printf( "比较次数d\n ",bc);
printf( "交换次数d\n ",jc);
}
int main()
{
int a[21],i;
for(i=1;i<=20;i++)
{
a[i]=50-i;
printf( "%d\t ",a[i]);
}
sort(a,20);
printf( "排序后\n");
for(i=1;i <=20;i++)
{
printf( "%d\t ",a[i]);
}
return 1;
}
起泡排序
最新推荐文章于 2022-03-15 12:28:14 发布