冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换它们。
元素项向后移动至
正确的顺序
就好像气泡升至表面一样,从一个小气泡慢慢变大,交换的过程就可以类比成变大的过程,所以叫冒泡排序。
简化:
有n个数
需要比较n轮
每轮需要比较n - 1次
let array = [5,4,3,2,1]
for(let i = 0; i < array.length; i++){
for(let j = 0; j < array.length - 1; j++){
if(array[j] > array [j+1]){
[array[j],array[j+1]] = [array[j+1],array[j]] //解构赋值
}
}
}
console.log(array)
优化:
每轮比较后,最大的数占了一个位置,所以下一轮比较的次数可以比上一轮少一次
let array = [5,4,3,2,1]
for(let i = 0; i < array.length; i++){
for(let j = 0; j < array.length - i - 1; j++){
if(array[j] > array [j+1]){
[array[j],array[j+1]] = [array[j+1],array[j]] //解构赋值
}
}
}
console.log(array)
冒泡排序与其他排序算法相比,是最符合大脑直观感受的,也是最简单的,但是与其他排序算法比较,也是时间复杂度( O() )最高的。