vlambda博客
学习文章列表

【C语言】8.冒泡法排序程序设计

冒泡排序(Bubble Sort)是一种简单直观的排序算法。


1. 算法步骤


  • 将待排序的N个数依次进行相邻两个数的比较,如果不符合由小到大的顺序要求(即前小后大),则交换两个数的位置,否则不交换。

  • 待N个数经过N-1次相邻两数比较后,最大的数就交换到了最后的位置,这个数就算排好位了,这称为一趟排序,即一趟排序可以将一个数排到它该放置的位置。

  • 第2趟排序时,只需对除最大数外余下的N-1个数按第1趟的排序方法进行操作,即可将第2个数排到该排的位置(倒数第二个位置)。

  • 依此类推,对N个数进行N-1趟排序后,则所有数就有序了。

  • 以上排法是升序排序,若降序排序则交换数的条件是相邻两个数中前面的数小于后面的数。


【C语言】8.冒泡法排序程序设计

2.动画演示


3.C语言实现


//参考代码#include<stdio.h>#define N 8int 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"); }