冒泡排序
// 冒泡排序
const bubbleSort = (array) => {
if (!array || array.length < 2) return
let len = array.length
// for (let i = 0; i < len; i++) {
// for (let j = 0; j < len - i - 1; j++) {
for (let i = len - 1; i > 0; i--) {
for (let j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
let temp = array[j]
array[j] = array[j + 1]
array[j + 1] = temp
}
}
}
return array
}
插入排序
// 插入排序
const insertion = (array) => {
if (!array || array.length < 2) return array
// for (let i = 1; i < array.length; i++) {
// for (let j = i - 1; j >= 0 && array[j] > array[j + 1]; j--) {
// let temp = array[j]
// array[j] = array[j + 1]
// array[j + 1] = temp
// }
// }
for (let i = 1; i < array.length; i++) {
let value = array[i]
let j = i - 1
for (; j >= 0; j--) {
if (array[j] > value) {
array[j + 1] = array[j]
} else {
break
}
}
array[j + 1] = value
}
return array
}
选择排序
// 选择排序
const selection = (array) => {
if (!array || array.length < 2) return array
for (let i = 0; i < array.length; i++) {
let minIndex = i
for (let j = i + 1; j < array.length; j++) {
minIndex = array[j] < array[minIndex] ? j : minIndex
}
let temp = array[i]
array[i] = array[minIndex]
array[minIndex] = temp
}
return array
}