冒泡排序概念:
在排序过程中小数往前放,大数往后移,就像冒泡一样,所以取名“冒泡排序”,有的地方也叫“起泡排序”。
算法原理(From:百度百科):
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
贴上一张原理图:
贴上代码,注释已经说明白了:
//冒泡排序算法实现
#include <stdio.h>
void main()
{
int a[5]; //定义元素为5的数组
int i,j; //控制循环
int t; //中间变量
for (i = 0;i < 5;i++) //**
{ //**
scanf(" %d",&a[i]); //**为即将排序的数组读取数据
} //**
for (i = 0;i < 4;i++) //---
{ //---
for (j = 0;j < 5-i;j++)
{
if (a[j] > a[j+1])
{
t = a[j+1];//---排序过程,数据交换
a[j+1] = a[j];
a[j] = t;
}
} //---
} //---
puts("排序后的书序为:");
for (i = 0;i < 5;i++)
{
printf("%d\n",a[i]); //输出数据
}
}
本文由 花墨 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。