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