//冒泡排序
void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
void bubble(int num[],int n)
{
int i,j;
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(num[j]>num[j+1])
{
swap(&num[j],&num[j+1]);
}
}
}
}
#include<stdio.h>
#define maxn 10
int main()
{
int i,n,num[maxn];
printf("请输入n:\n");
scanf("%d",&n);
printf("请输入n个数\n");
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
bubble(num,n);
printf("After sorted\n");
for(i=0;i<n;i++)
{
printf("%3d",num[i]);
}
return 0;
}
该方法之所以叫冒泡排序,是因为在进行从小到大排序的过程中,小的数会经过交换慢慢地从底下“冒”出来。
但是冒泡排序的效率实际上并不高,因为它需要约(n^2)/2 次比较,不过对于小数组来说,它的性能还是可以接受的