本文最后更新于 339 天前,其中的信息可能已经有所发展或是发生改变。
冒泡排序核心思想
冒泡排序就是把逆序的元素进行交换,每次都是相邻的两个元素比较,交换也发生在这两个元素之间。
所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,
所以冒泡排序是一种稳定排序算法。
冒泡排序样例代码
1.C++
void bubbleSort(int *a, int n) { for (int i = 0; i < n - 1; i++) { bool flag = false; for (int j = 0; j < n - 1 - i; j++) { if (a[j] > a[j + 1]) { std::swap(a[j], a[j + 1]); flag = true; } } if (flag == false) break; } }
2.PHP
function bubbleSort($arr) { $len = count($arr); for ($i = 0; $i < $len - 1; $i++) { for ($j = 0; $j < $len - 1 - $i; $j++) { if ($arr[$j] > $arr[$j+1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } return $arr; }
3.JavaScript
function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len - 1; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1]) { // 相邻元素两两对比 var temp = arr[j+1]; // 元素交换 arr[j+1] = arr[j]; arr[j] = temp; } } } return arr; }