冒泡排序是一种简单的排序算法.
它重复地走访过要排序的数列, 一次比较两个元素, 如果他们的顺序错误就把他们交换过来.
/*// 冒泡排序法
#include<stdio.h>
#define N 5
#include<stdlib.h>
int main()
{
int i, j;// 循环变量
int temp;// 用来交换的临时变量
int nums[N] = { 16,25,9,90,23 };
// 外层循环控制轮数
for (i = 0; i <N - 1; i++)//5 个数只用比较 4 次, 所以 N - 1
{
for (j = 0; j < N - i - 1; j++)// 内层循环控制 每轮的比较次数
{
if (nums[j]> nums[j + 1])
// 如果前面的一个数小于后面的一个值, 那么进行交换
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("排序后的结果:\n");
for (i = 0; i < N; i++)
{
printf("%d\t", nums[i]);
}
return 0;
}
*/
冒泡排序算法的原理如下:
比较相邻的元素. 如果第一个比第二个大, 就交换他们两个.
对每一对相邻元素做同样的工作, 从开始第一对到结尾的最后一对. 在这一点, 最后的元素应该会是最大的数.
针对所有的元素重复以上的步骤, 除了第一个.
持续每次对越来越少的元素重复上面的步骤, 直到没有任何一对数字需要比较.
来源: http://www.bubuko.com/infodetail-3006709.html