最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

六星源課堂:Python排序算法有哪幾種?

2022-07-20 09:25 作者:六星源課堂  | 我要投稿

python排序算法有哪些?python中常見(jiàn)的排序算法有:插入排序、選擇排序、冒泡排序、快速排序、歸并排序、希爾排序等十種,接下來(lái)我們一起來(lái)看看詳細(xì)的內(nèi)容介紹。


  第一種:插入排序

  從第二個(gè)元素開(kāi)始和前面的元素進(jìn)行比較,如果前面的元素比當(dāng)前元素大,則將前面元素后移,當(dāng)前元素依次往前,直到找到比它小或等于它的元素插入在其后面,然后選擇第三個(gè)元素,重復(fù)上述操作,進(jìn)行插入,依次選擇到最后一個(gè)元素,插入后即完成所有排序。

  第二種:選擇排序

  設(shè)第一個(gè)元素為比較元素,依次和后面的元素比較,比較完所有元素找到最小的元素,將它和第一個(gè)元素互換,重復(fù)上述操作,我們找出第二小的元素和第二個(gè)位置的元素互換,以此類(lèi)推找出剩余最小元素將它換到前面,即完成排序。

  第三種:冒泡排序

  冒泡排序也是一種簡(jiǎn)單直觀的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來(lái)是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢浮到數(shù)列的頂端。

  第四種:快速排序

  快速排序使用分治法策略來(lái)把一個(gè)序列分為較小和較大的2個(gè)子序列,然后遞歸地排序兩個(gè)子序列。

  第五種:歸并排序

  歸并排序是創(chuàng)建在歸并操作上的一種有效的排序算法,該算法是采用分治法的一個(gè)非常典型的應(yīng)用。

 分治法:

  分割:遞歸地把當(dāng)前序列平均分割成兩半

  集成:在保持元素順序的同時(shí)將上一步得到的子序列集成到一起(歸并)

  第六種:希爾排序


  希爾排序是基于插入排序改進(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)而提高效率。

  第七種:基數(shù)排序

  基數(shù)排序?qū)儆诜峙涫脚判颍址Q(chēng)桶子法或者bin sort,顧名思義,它是透過(guò)鍵值的部分資訊,將要排序的元素分配至某些桶中,藉以達(dá)到排序的作用,基數(shù)排序法是屬于穩(wěn)定性的排序,其時(shí)間復(fù)雜度O(nlog(r)m),其中r為所采取的基數(shù),而m為堆數(shù),在某些時(shí)候,基數(shù)排序法的效率高于其它的穩(wěn)定性排序法。

  第八種:計(jì)數(shù)排序

  計(jì)數(shù)排序的核心在于將輸入的數(shù)據(jù)值轉(zhuǎn)化為鍵存儲(chǔ)在額外開(kāi)辟的數(shù)組空間中。作為一種線性時(shí)間復(fù)雜度的排序,計(jì)數(shù)排序要求輸入的數(shù)據(jù)必須是有確定范圍的整數(shù)。

  第九種:堆排序

  堆排序是指利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。堆積是一個(gè)近似完全二叉樹(shù)的結(jié)構(gòu),并同時(shí)滿足堆積的性質(zhì):即子結(jié)點(diǎn)的鍵值或索引總是小于(或者大于)它的父節(jié)點(diǎn)。堆排序可以說(shuō)是一種利用堆的概念來(lái)排序的選擇排序。

  第十種:桶排序

  為了節(jié)省空間和時(shí)間,我們需要指定要排序的數(shù)據(jù)中最小以及最大的數(shù)字的值,來(lái)方便桶排序算法的運(yùn)算。

以上就是本次分享的全部?jī)?nèi)容,想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!


六星源課堂:Python排序算法有哪幾種?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
汕尾市| 武义县| 丹寨县| 广丰县| 新竹市| 固安县| 封丘县| 青川县| 永仁县| 金山区| 白山市| 克什克腾旗| 乃东县| 进贤县| 南木林县| 平安县| 潞城市| 盐津县| 新蔡县| 安陆市| 香港| 黑水县| 金沙县| 邹城市| 大冶市| 定日县| 泾阳县| 纳雍县| 河源市| 资阳市| 仁化县| 桂阳县| 上饶县| 吕梁市| 甘洛县| 南宫市| 阿城市| 邵阳县| 敦煌市| 宁武县| 大荔县|