冒泡排序
遍历整个数组,将数组的每一项与其后一项进行对比,如果不符合要求就交换位置,一共遍历n轮,n为数组的长度
外层循环控制排序轮数,内层循环控制比较; 每轮循环会把最大或者最小值排序好
时间复杂度
O(n^2)
空间复杂度O(n)
是否稳定:是
js
function bubbleSort(arr) {
let len = arr.length
// 控制次数,每一轮都会排序好一个数字
for(let i = 0; i < len; i++) {
// -1: 控制边界; -i: 优化,不和尾部已排序好的作比较
for(let j = 0; j < len - 1 - i; j++) {
// 大于小于号控制升序还是降序
if(arr[j] > arr[j+1]) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]]
// let temp = arr[j]
// arr[j] = arr[j+1]
// arr[j+1] = temp
}
}
}
return arr
}
let res = bubbleSort([4,2,3,6,7,1])
console.log(res)