选择排序
假设你的计算机中存储了乐曲,对于每个乐队你都存储了其作品的播放次数
我们想将这个表按播放次数从多到少的顺序排序,我们可以通过遍历这个表将表中播放最多的乐队取出来
,添加到一个新的列表中。再从剩下的表中遍历选出播放最多得乐队,加入到新表中,循环往复直到表中没有东西。
代码如下
#定义一个函数,每次选出队列中最大的一个元素的索引
def findMax(arr):
Max = arr[0]
Max_index = 0 #最小的索引
for i in range(1,len(arr)):
if arr[i] > Max:
Max= arr[i]
Max_index = i
return Max_index
#将选出来的最大的元素存在新数组中
def selectionSort(arr):
new_list = []
for i in range(len(arr)):
Max_index = findMax(arr)
new_list.append(arr.pop(Max_index))
return new_list
arr = [156,141,35,94,88,61,111]
result = selectionSort(arr)
print(result)
运行结果如下:
我们通过一个动图来加深理解: