#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个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。