91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用Python實現插入排序和選擇排序

發布時間:2021-04-07 10:26:12 來源:億速云 閱讀:156 作者:小新 欄目:開發技術

這篇文章主要介紹如何使用Python實現插入排序和選擇排序,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

插入排序

如下圖所示,插入排序的實現思路顧名思義,就是 不斷地在一個已經是有序的數組中,尋找合適位置并插入新元素 。

如何使用Python實現插入排序和選擇排序

具體實現步驟為:

首先我們把整個數組拆分為有序區間和未排序區間,有序區間在插入排序一開始只有一個元素,就是數組的第一個元素。

接在有序區間之后的一個元素就是準備插入的元素,在圖中就是標為綠色的元素,在有序區間內尋找位置并插入。

其尋找邏輯為:從后往前依次進行比較,如果待插入元素大于當前元素,則將待插入元素插入到當前元素的后一位,如果待插入元素小于當前元素,則將當前元素后移一位。不斷重復該過程直至到數組的最后一位

其實現的具體代碼為:

def insertion_sort(a):
 length = len(a)
 if length <=1:
  return 
 for i in range(1,length):
  j = i-1
  value = a[i]
  while j >=0:
   if a[j]<value:
    a[j+1] = value
    break
   else:
    a[j+1] = a[j]
    if j == 0:
     a[j] = value 
   j -=1
  print(a)

    return a時間復雜計算為:我們需要將整個數組遍歷一遍,所以這一部分為O(n),在每一次遍歷中都要執行一次插入操作,其時間復雜度為O(n),所以總時間復雜度為O(n2)

選擇排序

選擇排序跟插入排序算法類似,都是將數組分為有序區間和未排序區間,區別在于插入排序是將一個新元素插入到有序區間內,而選擇排序則是在未排序區間中找到最小元素,并交換到有序區間之后。

如何使用Python實現插入排序和選擇排序

實現代碼為:

def selection_sort(a):
 length = len(a)
 if length <=1:
  return
 for i in range(0,length-1):
  min_value = a[i]
  min_index = i
  j = i+1
  while j<length:
   if a[j] < min_value:
    min_value = a[j]
    min_index = j
   j += 1
  a[i],a[min_index] = a[min_index],a[i]

    return a時間復雜度計算:數組長度為n,一共需要尋找n次最小值,每次尋找最小值都要遍歷未排序區間一次,其時間復雜度為O(n),乘以n次為O(n2)

以上是“如何使用Python實現插入排序和選擇排序”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乳源| 曲阜市| 夏邑县| 朔州市| 岳池县| 富锦市| 长宁县| 海伦市| 晋中市| 惠水县| 黄梅县| 含山县| 舒兰市| 红河县| 金门县| 西乡县| 苏州市| 营山县| 古交市| 界首市| 五大连池市| 钟山县| 望都县| 南江县| 六枝特区| 马公市| 鸡泽县| 昆山市| 获嘉县| 寿宁县| 宁德市| 奈曼旗| 通州市| 喀什市| 长垣县| 盐城市| 渭南市| 石城县| 肃北| 游戏| 河池市|