排序是每一個軟件開發工程師都須要掌握的技能,包含Python工程師也是如此,那麼Python排序算法有哪些?常見的排序算法分爲插入排序、希爾排序、選擇排序、冒泡排序、快速排序等,接下來跟着小編深刻了解一下吧。算法
冒泡排序數組
是一種簡單直觀的排序算法,重複地走訪過要排序的數列,一次比較兩個元素,若是他們的順序錯誤就把他們交換過來。走訪數列的工做是重複地進行直到沒有再須要交換,也就是說該數列已經排序完成,這個算法名字由來是由於越小的元素會經由交換慢慢浮到數列的頂端。架構
插入排序ide
它的原理應該是最容易理解的,由於只要打過撲克牌的人都應該可以秒懂。插入排序是一種最簡單直觀的排序算法,它的工做原理是經過構建有序排序,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。排序
希爾排序開發
也被稱爲遞減增量排序算法,是插入排序的一種更高效的改進版本,但希爾排序是非穩定排序算法。希爾排序是基於插入排序的如下兩點性質而提出改進方法的:插入排序在對幾乎已經排好序的數據操做時,效率高,便可以達到線性排序的效率;但插入排序通常來講是低效的,由於插入排序每次只能將數據移動一位。字符串
歸併排序it
是創建在歸併操做上的一種有效的排序算法,該算法是採用分治法的一個很是典型的應用,做爲一種典型的分而治之思想的算法應用。class
快速排序效率
快速排序是由東尼·霍爾所發展的一種排序算法。在平均情況下,排序 n 個項目要 Ο(nlogn) 次比較。在最壞情況下則須要 Ο(n2) 次比較,但這種情況並不常見。事實上快速排序一般明顯比其餘 Ο(nlogn) 算法更快,由於它的內部循環能夠在大部分的架構上頗有效率地被實現出來。
計數排序
計數排序的核心在於將輸入的數據值轉化爲鍵存儲在額外開闢的數組空間中。做爲一種線性時間複雜度的排序,計數排序要求輸入的數據必須是有肯定範圍的整數。
基數排序
基數排序是一種非比較型整數排序算法,其原理是將整數按位數切割成不一樣的數字,而後按每一個位數分別比較。因爲整數也能夠表達字符串和特定格式的浮點數,因此基數排序也不是隻能使用於整數。