1.冒泡排序
1.1 解析
let arr = [2,3,4,2,1]
对比相邻的两个值 j 大于 j+1 则两个值交换位置
1.2 测试效率 bubbleSort(arr)
0. 测试数据 arr.length < 3W 花费时间 0s - 1s
1. 测试数据 arr.length == 5W 花费时间 3s - 4s
2. 测试数据 arr.length == 10W 花费时间 14s - 15s
3. 测试数据 arr.length == 20W 花费时间 55s
// 冒泡排序
function bubbleSort(arr) {
let len = arr.length
for (var i = 0; i < len - 1; i++) {
let sonLen = len - 1 - i
for (var j = 0; j < sonLen; j++) {
if (arr[j] > arr[j+1]) { // 相邻元素两两对比
[arr[j], arr[j+1]] = [arr[j], arr[j+1]] // 元素交换
}
}
}
return arr
}
2.快速排序
2.1 解析
let arr = [2,3,4,2,1]
1.设置基础值为数组第一个key 左边 i(form) 右边 j (to) (i, j 各管一边 不得越界)
2.首先 j 往左边走( j --) 跟 key 对比 小于key 时 停下