冒泡排序
冒泡排序是一种简单的排序算法。经过若干次的遍历要排序的数列,每次都是从前面往后依次比较两个数的大小,如果前者比后者到就交换位置。这样经过一次遍历后,最大的数就排到了最后。这样依次遍历若干遍就把数列排好了。
冒泡排序图解
下图是对数列{6, 2, 5, 3},第一趟排序的过程,结束后最大的数就排好了。接下来用同样的方法排序剩余的数。

冒泡排序代码实现
按升序排序的算法实现
// a 数组
// len 数组元素个数
void bubbleSort(int a[], int len)
{
int i, j;
int temp;
int flag;
for (i=0; i<len-1; i++) { // 进行 len - 1 趟排列
flag = 0;
for (j=0; j<len-1-i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 1; // 标记发送过交换
}
}
if (flag == 0) // 如果没有发送过交换,说明数据已经是有序的
break;
}
}
时间复杂度为 O(n²)。冒泡排序的效率比较低,不适合对大量数据的排序。
冒泡排序
冒泡排序是一种简单的排序算法。经过若干次的遍历要排序的数列,每次都是从前面往后依次比较两个数的大小,如果前者比后者到就交换位置。这样经过一次遍历后,最大的数就排到了最后。这样依次遍历若干遍就把数列排好了。
冒泡排序图解
下图是对数列{6, 2, 5, 3},第一趟排序的过程,结束后最大的数就排好了。接下来用同样的方法排序剩余的数。
冒泡排序代码实现
按升序排序的算法实现
时间复杂度为 O(n²)。冒泡排序的效率比较低,不适合对大量数据的排序。