选择排序
排序思路:
一趟遍历记录最小的数,放到第一个位置;
再一趟遍历记录剩余列表中最小的数,继续放置;
假定一个最小值变量,拿这个值遍历相比较,比假定的最小值还小,就设置最小值变量为该值
时间复杂度为:
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]