最常用的 8 個排序演算法:從原理到改進,再到程式碼兌現透徹解析

GitChat的部落格發表於2018-04-12

越到最後,你越會明白演算法和資料結構很 cool,很 essential。這些都是內功,和用什麼語言、技術或框架無關。本場 Chat 的主要內容包括:

  • 8 個主要排序演算法的思想和原理圖解,程式碼兌現
  • 從氣泡排序到快速排序做的那些優化
  • 從直接選擇排序到堆排序做的那些改進
  • 從直接插入排序到希爾排序做的那些改進
  • 歸併排序演算法的過程圖解
  • 不基於比較的基數排序原理圖解

實錄提要:

  • 在日常的開發中排序操作的應用都有哪些?
  • 無序序列到有序的本質是什麼?
  • 排序操作主要考慮哪些指標?
  • 什麼樣的場景需要穩定性?什麼樣不需要?
  • 遞迴呼叫的開銷是怎麼算的,遞迴的總數嗎?需不需要考慮遞迴的棧消耗?
  • 為什麼排序操作要區分關鍵碼是值型別還是引用型別?
  • Java 中 Sort 介面結合了哪幾種排序演算法?
  • 選用插入排序還是快速排序時數字7是怎麼選取的?基於經驗嗎?有沒有數學依據?
  • 插入排序,快速排序,歸併排序,它們各自的演算法思想是什麼?
  • 什麼是穩定排序演算法,穩定是基於什麼來說的?
  • 為什麼快速排序是通常被認為在同數量級的排序方法中平均效能最好的?

閱讀全文: http://gitbook.cn/gitchat/activity/59faa033edf8562cf5d29c1e

一場場看太麻煩?成為 GitChat 會員,暢享 1000+ 場 Chat !點選檢視

相關文章