常見的排序演算法分析(一)
常見的排序演算法分析(一)
說來慚愧,自2015~16年在大學校園裡做了些小專案後,邊從來沒關注過排序演算法。恰逢17年中興成研所招收實習生,一把進入之後也再沒想過關注這些排序演算法。恰巧上週有校招新人面試,聽聞新人各種排序演算法精通,為了不被鄙視特意去學了下常見的排序演算法。哭唧唧,之前連大部分演算法名字都不記得了,只記得一個氣泡排序和一些分治的概念,某些個演算法著實燒了會腦子。趁著我寫第一篇博文的時候,第二篇也來湊個數。
由於只看了,插入,選擇,希爾,快速,歸併,大小堆 這些排序,那就分享下這些演算法的個人理解吧!希望對路過的各位有所幫助,如有錯誤歡迎指正(各位輕噴,畢竟幹活乾的早,演算法並不精通)!
所有排序均考慮升序排序
簡單的排序演算法----選擇排序
所謂選擇排序,即選出滿足條件的元素,然後進行排序。這種排序,講究 選 和 滿足條件,這種排序方式應該是最符合人的思想的排序方式吧。
例如:我要升序排列一堆無序資料,那我只需要將最小的放在第一個,次小的放在第二個,以此類推即可。
原理:
簡單的排序演算法----插入排序
所謂插入排序,即依次將每個位的元素,依次向前插入到各自的位置上,當各個元素均在自己的位置上時,則所有資料就從無序變成了有序。這種排序,講究 每個元素找準自己的位置。
例如:我要升序排列一堆無序資料,那我只需要將第二個元素向第一個元素比較,若是比第一個元素小,則將第二個元素插入到第一個元素前。第三個元素也想第一個元素的方向,向最相鄰的元素(第二個)進行比較,若是比第二個元素小,則插入到第二個元素前,並繼續向前一個元素(第一個)比較,如果比前一個小則插入到前一個元素前面。依次按照這種操作,將每個元素插入到各自的位置。
原理:
相關文章
- 常見排序演算法排序演算法
- 常見的排序演算法 (下)排序演算法
- 常見排序演算法總結排序演算法
- 常見排序演算法小結排序演算法
- Javascript常見排序演算法的筆記JavaScript排序演算法筆記
- Haskell常見排序演算法的實現Haskell排序演算法
- Java常見排序演算法之插入排序Java排序演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- PHP常見排序演算法學習PHP排序演算法
- 35.幾種常見的排序演算法排序演算法
- 10種python常見的排序演算法!Python排序演算法
- 幾種常見的排序演算法總結排序演算法
- 常見演算法 PHP 實現 -- 堆排序演算法PHP排序
- 常見排序演算法及複雜度排序演算法複雜度
- 幾種常見排序演算法總結排序演算法
- 常見排序演算法-Python實現排序演算法Python
- 常見的排序演算法:冒泡、快排、歸併排序演算法
- python實現常見的五種排序演算法Python排序演算法
- 說說常見的排序演算法有哪些?區別?排序演算法
- 常見的三種排序演算法(選擇,冒泡,計數)排序演算法
- Java常見排序演算法之插入排序-簡單的效能優化技巧Java排序演算法優化
- python3實現幾種常見的排序演算法Python排序演算法
- 用 Java 實現常見的 8 種內部排序演算法Java排序演算法
- 常見排序演算法原理及JS程式碼實現排序演算法JS
- js 常見四種排序JS排序
- 七種常見的陣列排序演算法整理(C語言版本)陣列排序演算法C語言
- Flutter 常見異常分析Flutter
- 一個常見的閉包函式的分析函式
- 常見加密演算法及常見加密演算法簡述加密演算法
- 圖論中的常見演算法分析比較和模板圖論演算法
- 一些常見的字串匹配演算法字串匹配演算法
- 常見一致性演算法演算法
- 好程式設計師Java培訓分享Java常見排序演算法之插入排序程式設計師Java排序演算法
- 常見的JavaScript面試演算法JavaScript面試演算法
- 常見hash演算法的原理演算法
- 【Java資料結構與演算法筆記(一)】常見排序演算法及面試考點總結Java資料結構演算法筆記排序面試
- 常見限流演算法演算法
- PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序PHP排序