1、冒泡排序
遍歷元素,跟其下一個(gè)元素對比
把最大的逐個(gè)往后排列
let arr = [5, 3, 6, 9, 2, 1, 8]
for(let i = 0; i < arr.length-1; i++){
for(let j = 0; j < arr.length-1; j++){
if(arr[j] > arr[j+1]){
var current = arr[j]
arr[j] = arr[j+1]
arr[j+1] = current
}
}
}
2、選擇排序
把當(dāng)前元素分別跟后面所有的元素對比
把最小的逐個(gè)往前排列
let arr = [5, 3, 6, 9, 2, 1, 8]
for(let i = 0; i < arr.length; i++){
for(let j = i+1; j < arr.length; j++){
if(arr[i] > arr[j]){
var current = arr[i]
arr[i] = arr[j]
arr[j] = current
}
}
}
3、快速排序
let arr = [5, 3, 6, 9, 2, 1, 8]
function fastSort(arr) {
// 退出遞歸并
if(arr.length <= 1) return arr
// 找中間元素位置
let index = parseInt(arr.length / 2)
// 拿出中間的元素,所有元素跟這個(gè)元素比較
let brr = arr.splice(index, 1)
// 小于的放一個(gè)數(shù)組
let crr = []
// 大于或者等于的放一個(gè)數(shù)組
let drr = []
for(let i = 0; i < arr.length; i++){
if(arr[i] < brr[0]){
crr.push(arr[i])
}else{
drr.push(arr[i])
}
}
// 遞歸 合并排序好的數(shù)組
return fastSort(crr).concat(brr, fastSort(drr))
}
fastSort(arr)
4、sort()排序
let arr = [5, 3, 6, 9, 2, 1, 8]
arr.sort((a, b) => a - b)