排序汽泡法
原则: 每次只找一个最小数(方便起见,从a[1]开始)
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]
4 5 3 1 2 6 9 7 8 0
4 5 3 1 2 6 9 7 0 8
4 5 3 1 2 6 9 0 7 8
4 5 3 1 2 6 0 9 7 8
4 5 3 1 2 0 6 9 7 8
4 5 3 1 0 2 6 9 7 8
4 5 3 0 1 2 6 9 7 8
4 5 0 3 1 2 6 9 7 8
4 0 5 3 1 2 6 9 7 8
a[1] 0 4 5 3 1 2 6 9 7 8
以此类推将1放入a[2],2放入a[3]。。。。9放入a[10]
#include"stdio.h"
main()
{
int a[11],i,j,t; /*i表示找第几小的数,j表示找的次数*/
printf("please input the numbers\n");
for(i=1; i<11; i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(i=1; i<10; i++) /*扫描第几趟*/
{
for(j=10; j>i; j--)
{
if(a[j]<a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
}
printf("the arry is:\n");
for(i=1;i<11;i++)
{
printf("%d\n",a[i]);
}
getch();
}
可以改进:
1、为不再有交换时,程序停止
2、可下沉、可上浮
输入无序,输出有序