选择排序和插入排序

选择排序

# 选择排序就是找到后面最小值的索引,和第一个值对比
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)
相关文章
相关标签/搜索