JavaScript數(shù)組常用排序方法

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)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 之前對排序算法理解不是很深刻,也容易把幾個(gè)算法混在一起,所以整理了幾個(gè)常用的排序算法,并嘗試在自己的理解上給...
    nuclear閱讀 433評論 0 2
  • 常見比較排序1.冒泡排序2.選擇排序:簡單選擇排序和堆排序3.插入排序:直接插入排序和希爾排序4.快速排序5.歸并...
    Adonia汪閱讀 304評論 0 0
  • 學(xué)習(xí)一下幾個(gè)日常的算法排序問題 1. 冒泡排序 實(shí)現(xiàn):用for循環(huán)遍歷數(shù)組元素,拿出前一個(gè)和后一個(gè)元素對比,如果前...
    mills_han閱讀 4,800評論 1 2
  • 簡介 原地排序:就是指空間復(fù)雜度為O(1)的排序算法。 穩(wěn)定性:如果待排序的序列中存在值等的元素,經(jīng)過排序之后,相...
    geeklyc閱讀 452評論 0 0
  • 1 前言 2 排序基礎(chǔ)2.1 選擇排序2.2 插入排序 3 高級排序算法3.1 歸并排序3.1.1 插入排序與歸并...
    憩在河岸上的魚丶閱讀 581評論 0 2

友情鏈接更多精彩內(nèi)容