欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用python實(shí)現(xiàn)選擇排序

這篇文章主要介紹如何使用python實(shí)現(xiàn)選擇排序,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比五河網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式五河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋五河地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

選擇排序簡(jiǎn)單理解:以升序來(lái)說(shuō),在每次遍歷待排序數(shù)組時(shí),默認(rèn)首位的元素為最小,然后逐個(gè)把剩余元素與該首位元素進(jìn)行比較,如果小于則二者交換位置,這樣遍歷完一次數(shù)組,就能確定把最小的一個(gè)元素放到首位。每次遍歷完數(shù)組時(shí),均能確定一個(gè)相對(duì)最小元素,因此相對(duì)于上次遍歷的數(shù)組來(lái)說(shuō),此次的數(shù)組長(zhǎng)度減1,即已經(jīng)確定為最小的元素不再參與后續(xù)的遍歷,正常情況下經(jīng)過(guò)原數(shù)組長(zhǎng)度減1次遍歷即可完成排序。
def selection_sort(alist):    '''選擇排序'''        last = len(alist)    first = 1        while first < last:        print(first)  # 可以理解為第幾次遍歷        for i in range(first,last):            if alist[i] < alist[first-1]: # 從小到大排列                alist[first-1],alist[i] = alist[i],alist[first-1]        print(alist)   # 每次遍歷完的結(jié)果                first += 1
   return alist

if __name__ == '__main__':    alist = [2,4,7,1,6,5,3]    print(selection_sort(alist))

        

        代碼流程:首先獲取數(shù)組長(zhǎng)度last,初始遍歷時(shí),默認(rèn)0索引位置的元素最小,因此令first為1,first代表的意思是第一個(gè)與默認(rèn)最小值進(jìn)行比較的元素的索引(比如在進(jìn)行第一輪遍歷時(shí),肯定是索引為1的元素與索引為0的元素比較,后面每輪的遍歷類似推理即可);接著進(jìn)入while循環(huán),這里以開(kāi)始比較的元素的索引與數(shù)組長(zhǎng)度作條件判斷,小于則進(jìn)入遍歷,否則終止循環(huán)(此內(nèi)容下文針對(duì)示例結(jié)果具體講解);對(duì)于內(nèi)部的for循環(huán),注意其范圍:后者小于前者交換位置,否則不交換,這里可以看出后者元素的索引減1即為前者元素的索引,還是拿首次遍歷來(lái)說(shuō),當(dāng)first為1時(shí),其減1則為0,因此實(shí)現(xiàn)了第一個(gè)元素與默認(rèn)為最小的0位置的元素的比較,到了第二次遍歷時(shí),first為2,其減1為1,可實(shí)現(xiàn)2位置的與1位置的比較大小(此時(shí)的1為第二次遍歷時(shí)的數(shù)組的首個(gè)元素的索引 ‘0’)。。。。依次類推實(shí)現(xiàn)排序,在每次遍歷完后可通過(guò)打印數(shù)組來(lái)查看每次的結(jié)果。first加1,就是由于每遍歷一次,待排序的數(shù)組長(zhǎng)度減1。下面結(jié)合示例結(jié)果說(shuō)說(shuō):

1   # first值[1, 4, 7, 2, 6, 5, 3]  # 第一次遍歷結(jié)果2   # first值[1, 2, 7, 4, 6, 5, 3]  # 第二次遍歷結(jié)果3   # first值[1, 2, 3, 7, 6, 5, 4]  # 第三次遍歷結(jié)果4   # first值[1, 2, 3, 4, 7, 6, 5]  # 第四次遍歷結(jié)果5   # first值[1, 2, 3, 4, 5, 7, 6]  # 第五次遍歷結(jié)果6   # first值[1, 2, 3, 4, 5, 6, 7]  # 第六次遍歷結(jié)果
[1, 2, 3, 4, 5, 6, 7]  # 最終結(jié)果

        

        結(jié)果分析:待排序數(shù)組長(zhǎng)度為7,則只需遍歷6次,前6次確定6個(gè)元素,則最后一個(gè)元素?zé)o需比較。當(dāng)first為6時(shí),6<7,進(jìn)入循環(huán),比較的是上一輪第五次結(jié)果

[1, 2, 3, 4, 5, 7, 6]中的list[6]與list[6-1]的大小,也就是數(shù)值7和6交換位置,此時(shí)已經(jīng)卻確定好前6個(gè)數(shù)的位置,剩下最后一個(gè)位置的數(shù),接著打印出第六次結(jié)果,然后first加1,此時(shí)7<7不成立,終止循環(huán),此時(shí)的最后一個(gè)位置的數(shù)不進(jìn)行比較也是最大的了,返回排序好的數(shù)組,結(jié)束。

        

        復(fù)雜度:選擇排序的平均復(fù)雜度仍為n**2;最優(yōu)時(shí)間復(fù)雜度為n,即原數(shù)組為有序數(shù)組,遍歷第一次時(shí)如果未發(fā)生交換即可跳出循環(huán),可設(shè)定一個(gè)變量來(lái)記錄交換次數(shù)詳情可參考排序之冒泡排序該文章中的相關(guān)做法。

以上是“如何使用python實(shí)現(xiàn)選擇排序”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:如何使用python實(shí)現(xiàn)選擇排序
分享路徑:http://aaarwkj.com/article32/ggpepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)響應(yīng)式網(wǎng)站、網(wǎng)站排名網(wǎng)站改版、App開(kāi)發(fā)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
一区二区久久精品视频| 很黄很刺激的视频中文字幕| 精品人妻一区二区三区| 加勒比在线观看欧美一区| 国产二区日韩成人精品| 国产极品美女高潮抽搐| 国产在线不卡中文字幕| 亚洲av天堂在线播放| 日韩亚洲一区在线观看| 婷婷亚洲悠悠色悠在线| 亚洲欧美日韩颜射极品| 亚洲综合另类小说专区| 久久久久久精品人妻网| 少妇被又粗又硬猛烈进视频| 日本加勒比一本在线观看| 同为人妻一区二区三区| 日本人免费一区二区电影| 亚洲另类视频一区二区| 男女性生活视频成年人观看| 韩日男人女人性生活视频| 中文字幕五月久久婷热| 四虎国产最新在线免费| 在线中文字幕日韩精品| 一区三区三区日韩高清不卡| 成人深夜免费观看视频| 日本在线精品在线观看| 欧美日韩亚洲中文二区| 特黄特色的日本大片| 亚洲精品a在线观看av| 午夜福利片在线观看视频| 色噜噜噜欧美人妻色综合| 神马影院在线观看午夜| 日韩精品一区二区三区人妻视频 | 91嫩草中文字幕在线| 国产精品_国产精品_k频道| 亚洲蜜桃精品一区二区三区| 欧美三级视频一区二区三区 | 亚洲中文字幕乱码一二三| 亚洲区自拍偷拍一区二区| 免费高清av中文字幕| 日韩欧美国产麻豆一区精品|