冒泡排序
两两比较,每轮结束后,大值都排在最后。
function swap(arr, i, j) {
const temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
// 或者ES6写法
[arr[i], arr[j]] = [arr[j], arr[i]]
}
function bubleSort(arr) {
let len = arr.length
for (let i = 0 ; i < len; i++) {
for (let j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr, j, j + 1)
}
}
}
return arr
}
选择排序
选择排序是从数组的开头开始,将第一个元素和其他元素作比较,检查完所有的元素后,最小的放在第一个位置,接下来再开始从第二个元素开始,重复以上一直到最后。
function selectSort(arr) {
const len = arr.length
for (let i = 0; i < len - 1; i ++) {
for (let j = i + 1; j < len; j ++) {
if (arr[j] < arr[i]) {
[arr[j], arr[i]] = [arr[i], arr[j]]
}
}
}
return arr
}