python---选择排序的实现

选择排序

思想

​ 一趟遍历记录最小的数, 放到第一个位置

​ 再一趟遍历记录剩余列表中最小的数, 继续放置

关键点:

​ 无序区: 第i趟, 无序区为 i~n-1

​ 最小数的位置

import random
from cal_time import get_running_time


@get_running_time
def select_sort(li):
    n = len(li)

    for i in range(n - 1):  # 执行n-1趟

        min_pos = i  # 无序区最小值位置

        for j in range(i + 1, n):  # 执行第i趟时, 无序范围 i~n-1
            if li[j] < li[min_pos]:
                min_pos = j

        if min_pos != i:
            li[i], li[min_pos] = li[min_pos], li[i]

    return li


li = [i for i in range(0, 10000, 4)]
random.shuffle(li)
print(li)
print(select_sort(li))
posted @ 2020-03-16 16:29  凯旋.Lau  阅读(153)  评论(0)    收藏  举报