选择排序

选择排序

排序思路:

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

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

  假定一个最小值变量,拿这个值遍历相比较,比假定的最小值还小,就设置最小值变量为该值

时间复杂度为:

  O(n2)

def select(li):
    """
    选择排序,假定一个最小值变量,遍历比较
    :param li: 无序列表
    :return: None
    """
    for i in range(len(li) - 1):
        min_loc = i
        for j in range(i + 1, len(li)):
            if li[j] < li[min_loc]:
                min_loc = j
        li[i], li[min_loc] = li[min_loc], li[i]

data = list(range(1000))
random.shuffle(data)
select(data)
print(data)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

 

posted @ 2017-03-08 18:11  yxy_linux  阅读(127)  评论(0编辑  收藏  举报