冒泡排序法
方法:通过重复的遍历元素然后比较相邻的两个元素大小交换位置实现的。
核心就是相邻的两个元素,要是符合条件的话就
不断的交换,
不断的交换,
不断的交换。
.
.
.
本次采用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]){
int tmp = buf[j];
buf[j] = buf[j + 1];
buf[j + 1] = tmp;
}
}
}
}
// 主函数
int main(int argc, char **argv)
{
int arr[] = { 4,1,3,4,2,0,5,0 }; // 测试数组
int size = sizeof(arr) / sizeof(int); // 数组大小
print(arr, size); // 打印排序前数组
sort(arr, size); // 排序
print(arr, size); // 打印排序后数组
return 0;
}