一、算法基本思想
(1)基本思想
冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。
算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。
二、算法实现
void BubbleSort(int *arr, int len)
{
assert(arr);
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < len - 1; i++) //n-1趟
{
for (j = 0; j < len -i- 1; j++)
{
if (arr[j]>arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
冒泡排序还有三种优化方式:(以下都是以升序为例)
例如要排序下面这组数据: 0 1 2 3 4 5 6 7 9 8