【C语言】8.冒泡法排序程序设计
冒泡排序(Bubble Sort)是一种简单直观的排序算法。
1. 算法步骤
将待排序的N个数依次进行相邻两个数的比较,如果不符合由小到大的顺序要求(即前小后大),则交换两个数的位置,否则不交换。
待N个数经过N-1次相邻两数比较后,最大的数就交换到了最后的位置,这个数就算排好位了,这称为一趟排序,即一趟排序可以将一个数排到它该放置的位置。
第2趟排序时,只需对除最大数外余下的N-1个数按第1趟的排序方法进行操作,即可将第2个数排到该排的位置(倒数第二个位置)。
依此类推,对N个数进行N-1趟排序后,则所有数就有序了。
以上排法是升序排序,若降序排序则交换数的条件是相邻两个数中前面的数小于后面的数。
2.动画演示
3.C语言实现
//参考代码
int main()
{
int a[N];
int i,j,t;
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(j=0;j<N-1;j++)
for(i=0;i<N-1-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序后的结果:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}