js冒泡排序
原理:
每次循环,都比较相邻两个元素,每次都把最大的元素往后冒泡,每最终完成排序
性能:
代码如下:
let arr = [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16];
function bubble(arr) {
let m = arr.length;
while (m > 0) {
let lastIndex = 0;
for (let i = 0; i < m; i++) {
if (arr[i] > arr[i + 1]) {
let current = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = current;
lastIndex = i;
}
}
//本趟最后一次交换的位置,减少循环次数
m = lastIndex;
}
return arr
}