選擇排序和插入排序

選擇排序

# 選擇排序就是找到後面最小值的索引,和第一個值對比
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)
相關文章
相關標籤/搜索