MM131美女爱做视频在线看_性强烈的欧美三级视频_男女性潮高清免费网站_日日摸日日碰夜夜爽歪歪

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國(guó)家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟

Python入門指南:用Python實(shí)現(xiàn)常見的四種排序算法

  • 發(fā)布時(shí)間:
    2019-06-03
  • 版權(quán)所有:
    云和教育
  • 分享:

排序是每個(gè)軟件工程師和開發(fā)人員都需要掌握的技能。不僅要通過編程面試,還要對(duì)程序本身有一個(gè)全面的理解。不同的排序算法很好地展示了算法設(shè)計(jì)上如何強(qiáng)烈的影響程序的復(fù)雜度、運(yùn)行速度和效率。

配圖1 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

排序有很多種實(shí)現(xiàn)方法,比如冒泡排序、選擇排序、歸并排序、希爾排序、快速排序、插入排序、堆排序、基數(shù)排序等,今天就給大家介紹使用Python語言實(shí)現(xiàn)的其中4個(gè)排序算法。

1. 快速排序

首先要打亂序列順序 ,以防算法陷入最壞時(shí)間復(fù)雜度??焖倥判蚴褂谩胺侄沃钡姆椒ā?/p>

配圖2 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

對(duì)于一串序列,首先從中選取一個(gè)數(shù),凡是小于這個(gè)數(shù)的值就被放在左邊一摞,凡是大于這個(gè)數(shù)的值就被放在右邊一摞。然后,繼續(xù)對(duì)左右兩摞進(jìn)行快速排序。

直到進(jìn)行快速排序的序列長(zhǎng)度小于 2 (即序列中只有一個(gè)值或者空值)。

配圖3 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

2. ?冒泡排序

冒泡排序(順序形式),從左向右,兩兩比較,如果左邊元素大于右邊,就交換兩個(gè)元素的位置。

配圖4 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

其中,每一輪排序,序列中最大的元素浮動(dòng)到最右面。也就是說,每一輪排序,至少確保有一個(gè)元素在正確的位置。

這樣接下來的循環(huán),就不需要考慮已經(jīng)排好序的元素了,每次內(nèi)層循環(huán)次數(shù)都會(huì)減一。

配圖5 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

其中,如果有一輪循環(huán)之后,次序并沒有交換,這時(shí)我們就可以停止循環(huán),得到我們想要的有序序列了。

3. 選擇排序

配圖6 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

選擇排序,每次選擇當(dāng)前序列的最小值,將其與當(dāng)前序列的第一個(gè)元素交換位置,每迭代一次,當(dāng)前序列長(zhǎng)度減一。迭代結(jié)束,即可得到有序序列。

配圖7 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

4.插入排序

配圖8 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

插入排序的基本操作就是將一個(gè)數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中,從而得到一個(gè)新的、個(gè)數(shù)加一的有序數(shù)據(jù),算法適用于少量數(shù)據(jù)的排序,時(shí)間復(fù)雜度為O(n^2)。是穩(wěn)定的排序方法。

配圖9 用Python實(shí)現(xiàn)常見的四種排序算法.jpg

插入算法把要排序的數(shù)組分成兩部分:第一部分包含了這個(gè)數(shù)組的所有元素,但將最后一個(gè)元素除外(讓數(shù)組多一個(gè)空間才有插入的位置),而第二部分就只包含這一個(gè)元素(即待插入元素)。在第一部分排序完成后,再將這個(gè)最后元素插入到已排好序的第一部分中。

以上,就是云和數(shù)據(jù)今天所講的4種Python排序方法,不知道你學(xué)會(huì)了嗎?快動(dòng)手練習(xí)練習(xí)吧。