python排序的方法實(shí)例總結(jié)
1、冒泡排序
它反復(fù)訪問(wèn)要排序的元素列,并依次比較兩個(gè)相鄰的元素。如果順序(如從大到小)錯(cuò)了,就交換它們。訪問(wèn)元素的工作是反復(fù)進(jìn)行,直到?jīng)]有相鄰元素需要交換,也就是說(shuō)元素列已經(jīng)排序完成。
2、選擇排序
首次從待排序的數(shù)據(jù)元素中選擇最小(或最大)的元素,存儲(chǔ)在序列的開(kāi)始位置,然后從剩余的未排序元素中找到最小(大)元素,然后放在已排序的末尾。直到所有元素都被排序。
3、插入排序
對(duì)于未排序的數(shù)據(jù),通過(guò)構(gòu)建有序的序列,在已排序的序列中從后向前掃描,找到相應(yīng)的位置并插入。插入式排序在實(shí)現(xiàn)上,在從后向前掃描的過(guò)程中,需要反復(fù)將已排序的元素逐步向后移動(dòng),為最新的元素提供插入空間。
4、快速排序
將要排序的數(shù)據(jù)通過(guò)一次排序分成兩個(gè)獨(dú)立的部分,其中一個(gè)部分的所有數(shù)據(jù)都小于另一個(gè)部分的所有數(shù)據(jù),然后按照這種方法對(duì)這兩個(gè)部分的數(shù)據(jù)進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,從而使整個(gè)數(shù)據(jù)成為有序的序列。
5、希爾排序(插入排序改進(jìn)版)
首先,將要排序的一組數(shù)量按某個(gè)增量d分為幾個(gè)組,每組中記錄的下標(biāo)相差d,對(duì)每組中的所有元素進(jìn)行排序,然后用較小的增量對(duì)其進(jìn)行分組,然后對(duì)每組進(jìn)行排序。當(dāng)增量減少到1時(shí),整個(gè)要排序的數(shù)量被分成一組,排序完成。
6、歸并排序
首先遞歸分解組,然后合并組?;舅悸肥潜容^兩個(gè)數(shù)組的面的數(shù)字,誰(shuí)小就先取誰(shuí),取后相應(yīng)的指針向后移動(dòng)一個(gè)。然后再比較,直到一個(gè)數(shù)組是空的,最后復(fù)制另一個(gè)數(shù)組的剩余部分。
實(shí)例擴(kuò)展:
>>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data1.sort() >>> data1 #原來(lái)的順序被替換 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896]
>>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data2=sorted(data1) >>> data1 [4, 2, 6, 432, 78, 43, 22, 896, 42, 677, 12] #原順序保留 >>> data2 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] #對(duì)副本排序 >>>
到此這篇關(guān)于python排序的方法實(shí)例總結(jié)的文章就介紹到這了,更多相關(guān)python有幾種排序的方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何用Python繪制簡(jiǎn)易動(dòng)態(tài)圣誕樹(shù)
這篇文章主要給大家介紹了關(guān)于如何用Python繪制簡(jiǎn)易動(dòng)態(tài)圣誕樹(shù),文中講解了如何通過(guò)編寫(xiě)代碼來(lái)實(shí)現(xiàn)特定的效果,包括代碼的編寫(xiě)技巧和效果的展示,需要的朋友可以參考下2025-01-01
pandas數(shù)據(jù)合并之pd.concat()用法詳解
本文主要介紹了pandas數(shù)據(jù)合并之pd.concat()用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Python實(shí)現(xiàn)正則表達(dá)式匹配任意的郵箱方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)正則表達(dá)式匹配任意的郵箱方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
matplotlib圖例legend語(yǔ)法及設(shè)置的方法
這篇文章主要介紹了matplotlib圖例legend語(yǔ)法及設(shè)置的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python判斷鏈表是否有環(huán)的實(shí)例代碼
在本篇文章里小編給大家整理的是關(guān)于python判斷鏈表是否有環(huán)的知識(shí)點(diǎn)及實(shí)例代碼,需要的朋友們參考下。2020-01-01
python實(shí)現(xiàn)查找所有程序的安裝信息
本文給大家分享的是使用python通過(guò)注冊(cè)表信息實(shí)現(xiàn)快速查找windows應(yīng)用程序的安裝信息的方法和代碼示例,有需要的小伙伴可以參考下2020-02-02

