每轮从数组的待排序部分里选一个最小的,放到首位。
def select_sort(lst):
length = len(lst)
if length <= 1:
return lst
for i in range(0, length - 1):
min_idx = i
for j in range(i + 1, length): # 选出最小的
if lst[j] < lst[min_idx]:
min_idx = j
lst[i], lst[min_idx] = lst[min_idx], lst[i] # 放到首位
return lst
选择排序是不稳定排序,简单说就是,相等的元素可能会发生顺序变化。
网友评论