一.概念
重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
二.代码实现
#include<stdio.h>
#define N 10
void main()
{
int a[10];
int i,j,t;
printf("请输入10个数字: \n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//使用两层循环
for(i=0;i<N-1;i++){
for(j=i+1;j<N-(i+1);j++){
if(a[j]<a[j+1]){//比较大小
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}