排序算法總結(jié)

JavaScript實現(xiàn)十大排序算法,代碼+動圖+在實現(xiàn)代碼的時候遇到的坑

冒泡算法

(1) 實現(xiàn)思路

不斷的重復(fù)的對比相鄰的兩個元素,把大(?。┑囊频揭粋€方向去

(2) 代碼實現(xiàn):
bubbleSort (arr) {
    let len = arr.length
    for (let i = 0; i < len; i++) {
      for (let j = 0; j < len - i - 1; j++) {
        if (arr[j + 1] < arr[j]) {
          [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
        }
      }
    }
    return arr
  }
(3)寫代碼時候容易犯的思路錯誤:

在if (arr[j + 1] < arr[j]) 這塊用 arr[j] 和 arr[i]做比較,
冒泡排序中,外圈循環(huán)只是用來計數(shù)的。需要做比較的是相鄰的兩項,就是arr[j] & arr[j + 1]


(4) 動畫效果
冒泡排序.png


選擇排序

(1) 實現(xiàn)思路

每一次直接選出最?。ù螅┑囊粋€,不斷重復(fù)

seleteSort (arr) {
    let len = arr.length
    for (let i = 0; i < len; i++) {
      let minIndex = i
      for (let j = i + 1; j < len; j++) {
        if (arr[j] < arr[minIndex]) {
          [arr[minIndex], arr[j]] = [arr[j], arr[minIndex]]
          minIndex = j
        }
      }
    }
    return arr
  },

插入排序

  insertSort (arr) {
    let len = arr.length
    for (let i = 0; i < len; i++) {
      let index = i
      for (let j = i - 1; j >= 0; j--) {
        if (arr[j] > arr[index]) {
          [arr[j], arr[index]] = [arr[index], arr[j]]
          index = j
        }
      }
    }
    return arr
  },

快速排序

  quickSort (arr) {
    let len = arr.length
    if (len <= 1) return arr
    let pivot = Math.floor(len / 2)
    let item = arr.splice(pivot, 1)
    let left = []
    let right = []
    for (let i = 0; i < len - 1; i++) {
      if (arr[i] < item) {
        left.push(arr[i])
      } else {
        right.push(arr[i])
      }
    }
    return this.quickSort(left).concat(item, this.quickSort(right))
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 接觸U3D以來,我做過的場景漫游實現(xiàn)方式一般有以下幾種: Unity3d中的Animation組件,通過設(shè)置攝像機(jī)...
    道阻且長_行則將至閱讀 7,092評論 0 0
  • 讀在職法律碩士已經(jīng)一個月了,感覺又回到了學(xué)生時代,但疲憊感又遠(yuǎn)甚于學(xué)生時代。因為學(xué)校離住所太遠(yuǎn),為了早上能多睡...
    No_No_閱讀 296評論 0 0
  • 從珠海到中山故居再到東莞,回到凱景酒店,終于有回家的感覺,一場王者盛宴在等待我們。 旅途發(fā)生了很多,在中山故...
    陳毓灃閱讀 267評論 0 0
  • 想去,但聽說真的都是屎粑粑。 牧民不易,終于知道他們?yōu)楹尾幌丛瑁ㄌ貏e是在冬牧場上,水源全來自于降雪,連正常...
    煙落且聽塵閱讀 834評論 4 2

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