Python是屬于數據分析一類用的比較多的,在Python技術工作中,我們最常見的就是一些項目都需要涉及到排序,排行榜是最常見的,排序方法可以遞增,也可以遞減,這全看編程人員如何編寫,那關于Python中的排序算法你都了解多少?來看看本期的Python培訓教程吧。
Python培訓教程分享:常見的時間復雜度有哪些?
常數階O(1)、對數階O(log2n)、線性階O(n)、線性對數階O(nlog2n)、平方階O(n²)、立方階O(n³)、K次方階O(n^k)、指數階O(2^n)。
【冒泡排序】---算法描述
① 將相鄰的元素進行比較,如果第二個比第一個大,則互換;
② 每個相鄰元素重復同樣的工作,做完后,可以確定最后的元素是最大的值;
③ 除最后一個外,所有的元素重復以上步驟;
④ 持續對越來越少的元素重復上面的步驟,直到沒有元素需要比較。
【選擇排序】---算法描述
是一種簡單直觀的排序算法,工作原理是:第一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,然后再從剩余的未排序元素中尋找到最小(大)元素,繼續放在起始位置知道未排序元素個數為0。
【插入排序】---算法描述
將初始數據分為有序部分和無序部分,每一步將一個無序部分的數據插入到前面已經排好序的有序部分中,直到插完所有元素為止。
【希爾排序】---算法描述
是基于插入排序改進后的算法,因為當數據移動次數太多時會導致效率低下。所以我們可以先讓數組整體有序(剛開始移動的幅度大一點,后面再小一點),這樣移動的次數就會降低,進而提高效率。
【歸并排序】---算法描述
① 申請空間,使其大小為兩個已經排序序列之和,該空間用來存放合并后的序列;
② 設定兩個指針,最初位置分別為兩個已經排序序列的起始位置;
③ 比較兩個指針所指向的元素,選擇相對小的元素放入到合并空間,并移動指針到下一位置;
④ 重復步驟3直到某一指針達到序列尾;
【快速排序】---算法描述
① 從數列中取出一個數作為基準數;
② 分區,將比它大的數全放到它的右邊,小于或等于它的數全放到它的左邊;
③ 再對左右區間重復第二步,直到各區間只有一個數;
關于"Python中的排序算法你都了解多少?"的話題到這里就結束了,希望能夠給大家帶來幫助,如果您對Python技術非常感興趣,可以來了解一下千鋒教育提供的Python培訓課程,千鋒教育在全國20多所城市均設有教學基地,歡迎同學們前來咨詢了解。