冒泡排序法:通过重复的遍历元素然后比较相邻的两个元素大小交换位置实现的。
听说是一种比较简单的排序算法。
名字的由来听说是这样的:假设最小的值是数组最后的元素,然后通过该排序,每重复遍历一次该最小的元素会往前移动一个位置。
然后有点像有个泡泡在瓶子水底一直往上浮起来...
所以就冒泡呗。
至于该排序的算法复杂度。
嗯,请查其他资料吧。
本次采用C语言的方式实现。
#include <stdio.h>
// 打印数组
void print(int *buf, int size)
{
for (int i = 0; i < size; ++i)
{
printf("%d ", buf[i]);
}
printf("\n");
}
// 排序数组(从小到大)
void sort(int *buf, int size)
{
for (int i = 0; i < size - 1; ++i)
{
for (int j = 0; j < size - 1 - i; ++j)
{
if (buf[j] > buf[j + 1]) // 1.[ > 从小到大 ] 2.[ < 从大到小 ]
{
int tmp = buf[j];
buf[j] = buf[j + 1];
buf[j + 1] = tmp;
}
}
}
}
// 主函数
int main(int argc, char **argv)
{
int buf[] = {33, 2, 3, 3, 2, 1, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1}; // 源数组
int size = sizeof(buf) / sizeof(int); // 数组大小
print(buf, size); // 打印冒泡排序前数组
sort(buf, size); // 执行冒泡排序
print(buf, size); // 打印冒泡排序后数组
return 0;
}
嗯。
好像是简单。
---End
原文:https://www.cnblogs.com/lvvou/p/15080941.html