冒泡排序
简介
冒泡排序是一种简单的排序算法,通过比较数组中相邻的两个元素并交换它们的位置(如果顺序不对)来工作。该算法重复地遍历数组,直到不需要再交换为止。
排序的本质:【比较】+【交换】
示例
给定数组:[4, 1, 6, 7, 5, 3, 2, 8, 9]
实现方法
let arr = [4, 1, 6, 7, 5, 3, 2, 8, 9]
// 比较函数 -- 比较之后需要得出是否需要交换
function compare(a, b) {
// return a > b // 正序
return a < b // 逆序
}
// 交换函数 -- 将数组中a b 位置里的值进行交换
function swap(arr, a, b) {
let temp = arr[a]
arr[a] = arr[b]
arr[b] = temp
}
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (compare(arr[j], arr[j + 1])) {
swap(arr, j, j + 1)
}
}
}
}
bubbleSort(arr)
console.log(arr)