# 選擇排序就是找到後面最小值的索引,和第一個值對比 def select_sort(li): for i in range(len(li)-1): # n或者n-1趟 # 第i趟無序區範圍 i~最後 min_pos = i # min_pos更新爲無序區最小值位置 for j in range(i+1, len(li)): if li[j] < li[min_pos]: min_pos = j li[i], li[min_pos] = li[min_pos], li[i] li = list(range(0,100)) random.shuffle(li) select_sort(li) print(li)
def insert_sort(li): for i in range(1, len(li)): # i表示摸到的牌的下標 tmp = li[i] # 摸到的牌 j = i - 1 while j >= 0 and li[j] > tmp: # 只要日後挪就循環 2個條件都得知足 # 若是 j=-1 中止挪 若是li[j]小了 中止挪 li[j+1] = li[j] j -= 1 # j位置在循環結束的時候要麼是-1要麼是一個比tmp小的值 li[j+1] = tmp li = list(range(10000)) random.shuffle(li) insert_sort(li)