算法笔记系列:冒泡排序
普通版
function bubbleSort(arr) {// 外层进行 n-1 轮遍历for (var i = 0, len = arr.length; i < len - 1; i++) {// 内层进行 n-1-i 次比较排序for (var j = 0; j < len - 1 - i; j++) {if (arr[j] > arr[j + 1]) _sort(arr, j, j + 1);}}}function _sort(arr, i, j) {var t = arr[i];arr[i] = arr[j];arr[j] = t;}
function bubbleSort(arr) {var len = arr.length,i = 0,// 用来记录最后一位发生过 位置交换 的元素索引lastSwappedIndex;while (i < len - 1) {lastSwappedIndex = 0;for (var j = 0; j < len - 1 - i; j++) {if (arr[j] > arr[j + 1]) {_sort(arr, j, j + 1);lastSwappedIndex = j + 1;}}// 已经有序部分的元素个数i = len - lastSwappedIndex;}}function _sort(arr, i, j) {var t = arr[i];arr[i] = arr[j];arr[j] = t;}
