【分享】Python中最常見的10種排序演算法!
python排序演算法有哪些?python中常見的排序演算法有:插入排序、選擇排序、氣泡排序、快速排序、歸併排序、希爾排序等十種,接下來我們一起來看看詳細的內容介紹。
第一種:插入排序
從第二個元素開始和前面的元素進行比較,如果前面的元素比當前元素大,則將前面元素後移,當前元素依次往前,直到找到比它小或等於它的元素插入在其後面,然後選擇第三個元素,重複上述操作,進行插入,依次選擇到最後一個元素,插入後即完成所有排序。
第二種:選擇排序
設第一個元素為比較元素,依次和後面的元素比較,比較完所有元素找到最小的元素,將它和第一個元素互換,重複上述操作,我們找出第二小的元素和第二個位置的元素互換,以此類推找出剩餘最小元素將它換到前面,即完成排序。
第三種:氣泡排序
氣泡排序也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢浮到數列的頂端。
第四種:快速排序
快速排序使用分治法策略來把一個序列分為較小和較大的2個子序列,然後遞迴地排序兩個子序列。
第五種:歸併排序
歸併排序是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法的一個非常典型的應用。
分治法:
分割:遞迴地把當前序列平均分割成兩半
整合:在保持元素順序的同時將上一步得到的子序列整合到一起(歸併)
第六種:希爾排序
希爾排序是基於插入排序改進後的演算法,因為當資料移動次數太多時會導致效率低下。所以我們可以先讓陣列整體有序(剛開始移動的幅度大一點,後面再小一點),這樣移動的次數就會降低,進而提高效率。
第七種:基數排序
基數排序屬於分配式排序,又稱桶子法或者bin sort,顧名思義,它是透過鍵值的部分資訊,將要排序的元素分配至某些桶中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,其時間複雜度O(nlog(r)m),其中r為所採取的基數,而m為堆數,在某些時候,基數排序法的效率高於其它的穩定性排序法。
第八種:計數排序
計數排序的核心在於將輸入的資料值轉化為鍵儲存在額外開闢的陣列空間中。作為一種線性時間複雜度的排序,計數排序要求輸入的資料必須是有確定範圍的整數。
第九種:堆排序
堆排序是指利用堆這種資料結構所設計的一種排序演算法。堆積是一個近似完全二叉樹的結構,並同時滿足堆積的性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。
第十種:桶排序
為了節省空間和時間,我們需要指定要排序的資料中最小以及最大的數字的值,來方便桶排序演算法的運算。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2892516/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10種python常見的排序演算法!Python排序演算法
- python實現常見的五種排序演算法Python排序演算法
- 【譯】10 種 JavaScript 最常見的錯誤JavaScript
- python3實現幾種常見的排序演算法Python排序演算法
- 最常見的 10種網路安全攻擊型別型別
- 幾種常見的排序演算法總結排序演算法
- 35.幾種常見的排序演算法排序演算法
- 【推薦】最常見的三種Python字串格式化的方法!Python字串格式化
- 盤點最常見的10種網路安全攻擊方式!
- 【整理】最常見的10道Python面試題及答案!Python面試題
- 幾種常見排序演算法總結排序演算法
- JavaScript中的多種排序演算法JavaScript排序演算法
- 網路安全中ARP攻擊最常見的七種方法!
- Python學習中最常見的10個列表操作問題Python
- 10個最常見的JavaScript問題JavaScript
- 1500 種最常見的資料結構和演算法解決方案 - Kalkicode資料結構演算法
- Redis最常見的5種應用場景Redis
- 關於 Python 列表操作,最常見問答Top10Python
- 常見的三種排序演算法(選擇,冒泡,計數)排序演算法
- Python列表最常見的問題【總結】Python
- Python中幾種lambda排序方法Python排序
- python實現常用五種排序演算法Python排序演算法
- 帶你掌握4種Python 排序演算法Python排序演算法
- 滲透測試中最常見的9種漏洞!
- 用 Java 實現常見的 8 種內部排序演算法Java排序演算法
- 常見的排序演算法 (下)排序演算法
- 一些學Web前端最常見的錯誤分享!Web前端
- 常見排序演算法排序演算法
- Python 一網打盡<排序演算法>之堆排序演算法中的樹Python排序演算法
- 避開日常Kubernetes最常見的10個坑
- js 常見四種排序JS排序
- 七種常見的陣列排序演算法整理(C語言版本)陣列排序演算法C語言
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- 2018年最常見的Python面試題&答案(上篇)Python面試題
- 2018年最常見的Python面試題&答案(下篇)Python面試題
- Python程式設計最常見的錯誤有哪些?Python程式設計
- 幾種常用的排序演算法排序演算法
- 常見的排序演算法分析(一)排序演算法