冒泡排序图解
冒泡排序的排序规则如下,第一位与第二位进行比较,当满足条件进行位置交换。第二次 第二位于第三位进行比较,满足条件进行位置交换,直到最后一位
代码如下
const arr = [4, 1, 5, 55, 4, 89, 10, 5, 1, 26,]
/**
* 比较之后是否需要进行交换
* @param {Number} a 现在值
* @param {Number} b 后一位值
* return boolean
*/
function compare(a, b) {
if (b <= a) return true;
else return false;
}
/**
* 将数组中a 与 b 里的值进行交换
* @param {Array} arr 数组
* @param {number} a 现在值
* @param {number} b 后一位的值
*/
function exchange(arr, a, b) {
let temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
/**
* 冒泡排序
* @param {Array} arr 需要排序的数组
*/
function sort(arr) {
for (let j = 0; j < arr.length; j++) {
// 当前排序方式一大小排序,第一次循环中最大值会被换到最后,第一次就找到最大值,第二循环会找到第二大的值,依次往后
for (let i = 0; i < arr.length - 1 - j ; i++) {
if (compare(arr[i], arr[i + 1])) {
exchange(arr, i, i + 1)
}
}
}
}
sort(arr)
console.log(arr)