冒泡排序

xiaoxiao2021-02-28  87

#include <stdio.h> int main() { int i,j,n,k,a[100]; printf("请输入要比较的数的个数\n"); scanf("%d",&n); printf("请输入要比较的数\n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(j=0;j<n;j++) { for(i=0;i<n-j-1;i++) { if(a[i]>a[i+1])//两两比较将小的放在前面,一个循环之后最小的就在最前面,然后在剔除第一个,再次进行... { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } } } printf("从小到大排序为\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

转载请注明原文地址: https://www.6miu.com/read-73427.html

最新回复(0)