1. 程式人生 > >選擇排序之python

選擇排序之python

分享圖片 turn 改變 bubuko AR imp 每次 for 選擇排序

選擇排序( Selection sort)

1.算法描述:

  • 列表上的2個線性傳遞
  • 在每次通過時,它會選擇最小的值
  • 用最後一個未分類元素交換它

技術分享圖片

2.算法屬性:

  • 算法時間復雜度:O(n**2)
  • 不穩定性:list裏面重復元素可能會因選擇後改變前後順序
  • O(1) 額外的空間
  • O(n2 ) 對比
  • O(n) 互換
  • 不具有適應性:不像冒泡那樣可以加flag來改善

技術分享圖片

3.代碼實現

#kumata‘s code
#算法復雜度O(n**2)
#找到最小的元素就和第一個index交換
#從小到大排

import time
def selection_sort(nums=list): start
= time.time() #第一層選擇第n小的元素下標 for i in range(len(nums)): # n pos_min = i # Index #第二層遍歷找出需要交換的元素下標 for j in range(i + 1,len(nums)): if nums[pos_min] > nums[j]: pos_min = j #交換嘻嘻 nums[i],nums[pos_min] = nums[pos_min],nums[i] t
= time.time() - start return nums,t nums = [1,2,5,8,4,3,6] selection_sort(nums) #輸出結果 ([1, 2, 3, 4, 5, 6, 8], 0.0)

選擇排序之python