冒泡排序法
释疑:冒泡排序法是将数组中的元素依次从小到大(Also 从大到小)进行排序下来。请看如下操作!
共有4个数,如 2,4,1,3.
进行N-1次循环,每一次循环中需进行N-1-i 次交换
i=0时 ,j=0 ( 2,4,1,3) j=1 (2,1,4,3) j=2 (2,1,3,4)
i=1时 ,j=0 (1,2,3) j=1(1,2,3)
j=2时 ,j=0 (1,2)
可以看见每一次循环中,我们在进行交换时,把最大的数排到最后,下一次循环中,我们不用管上一次循环中的最大值,它已经站好自己的位置,我们需要得是将它前面得数排序。
小猿们,看我的运行结果
你最想看的代码:
#include<stdio.h>
int W(int a[10]); //我们定义10个数
int W(int a[10])
{ int i,j,t;
for(i=0;i<9;i++) //符合上面的循环次数和交换次数
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j]; //用中间量将两个数进行交换位置
a[j]=a[j+1];
a[j+1]=t;
}
}
int main()
{ int i;
int a[10];
printf("请输入10个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
W(a); //调用完函数,已经将数组重新排好顺序,接下来我们
printf("请输出10个数:"); //可以将数组在main()放出来。
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}