一、原理
冒泡排序的原理比较简单,就是将待排序区域的数值挨个向后对比,直到比较到已排序的边界,就纳入已排序区域。
二、代码如下所示:
#include <stdio.h>
#include "test.h"
/* 冒泡排序 */
void bubble_sort(int* arr, int begin, int len)
{
int data;
for (int i = len; i > begin; i--) //外层循环决定内层的遍历次数,每循环一次,就减少一次遍历
{
for (int j = begin; j < i-1; j++) //内层根据遍历次数进行数据比较
{
if (arr[j] > arr[j + 1])
{
data = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = data;
}
}
}
}
void main()
{
int* arr = CreateArray(10000);
//TEST_MY(selection_sort, arr, 10000);
TEST_MY(bubble_sort, arr, 10000);
/*unguarded_insert_sort(arr, 0, 10000, 1);*/
//printf("data:%d, %d, %d, %d\r\n", arr[0], arr[1], arr[2], arr[3]);
free(arr);
return;
}
运行结果如下所示: