5 选择排序¶
选择排序和堆排序都是选择思维,但是性能却不如堆排序:
def selection_sort(data_set):
frames = [data_set]
ds = copy.deepcopy(data_set)
for i in range(0, data_count-1):
for j in range(i+1, data_count):
if ds[j].value < ds[i].value:
ds[i], ds[j] = ds[j], ds[i]
frames.append(copy.deepcopy(ds))
frames.append(ds)
return frames
同样的输入数据,它完成排序需要108
帧:
动画展示如下,每轮会从未排序的列表中,挑出一个最小值,放到已排序序列后面。