溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Python中定義一個(gè)選擇排序算法

發(fā)布時(shí)間:2021-04-08 17:17:44 來源:億速云 閱讀:142 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Python中定義一個(gè)選擇排序算法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

選擇排序

選擇排序比較好理解,好像是在一堆大小不一的球中進(jìn)行選擇(以從小到大,先選最小球?yàn)槔?/p>

1. 選擇一個(gè)基準(zhǔn)球

2. 將基準(zhǔn)球和余下的球進(jìn)行一一比較,如果比基準(zhǔn)球小,則進(jìn)行交換

3. 第一輪過后獲得最小的球

4. 在挑一個(gè)基準(zhǔn)球,執(zhí)行相同的動(dòng)作得到次小的球

5. 繼續(xù)執(zhí)行4,直到排序好

時(shí)間復(fù)雜度:O(n^2).  需要進(jìn)行的比較次數(shù)為第一輪 n-1,n-2....1, 總的比較次數(shù)為 n*(n-1)/2

直接上代碼:

def selectedSort(myList):
  #獲取list的長度
  length = len(myList)
  #一共進(jìn)行多少輪比較
  for i in range(0,length-1):
    #默認(rèn)設(shè)置最小值得index為當(dāng)前值
    smallest = i
    #用當(dāng)先最小index的值分別與后面的值進(jìn)行比較,以便獲取最小index
    for j in range(i+1,length):
      #如果找到比當(dāng)前值小的index,則進(jìn)行兩值交換
      if myList[j]<myList[smallest]:
        tmp = myList[j]
        myList[j] = myList[smallest]
        myList[smallest]=tmp
    #打印每一輪比較好的列表
    print("Round ",i,": ",myList)
myList = [1,4,5,0,6]
print("Selected Sort: ")
selectedSort(myList)

執(zhí)行結(jié)果:

怎么在Python中定義一個(gè)選擇排序算法

關(guān)于怎么在Python中定義一個(gè)選擇排序算法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI