冒泡排序
冒泡排序算法的原理如下:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
数学形式
给定5个整型数字
3,2,10,4,8
2,3,10,4,8
2,3,4,10,8
2,3,4,8,10
第二次循环排列只需要把剩下的四位进行排列
等等进行下去直至排列完成
C语言代码实现
在这里插入代码片
#include<stdio.h>
int main()
{
int i = 0;
int a[] = { 3,2,10,4,8 };
int l = sizeof(a) / sizeof(a[0]);
int j = 0;
for (j = 0; j < l - 1; j++) //整体循环完成全部数字的排列
{
for (i = 0; i < l - 1 - j; i++) //排列一个数字所需要循环的次数
{
if (a[i] >= a[i + 1]) //将较大的数向后交换
{
int t = 0;
t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
}
for (i = 0; i < 5; i++)
{
printf("%d ", a[i]); // 打印结果
}
return 0;
}