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