【发布时间】:2019-04-15 12:00:51
【问题描述】:
我需要实现一种方法,通过使用最小值和最大值从两端工作来提高选择排序的效率。
我让它只使用最小值的索引,但我仍然需要找到一种同时从最大值向后工作的方法。
def selectionsort(alist):
for i in range(len(alist)):
min_idx = i
for j in range(i+1, len(alist)):
if alist[min_idx] > alist[j]:
min_idx = j
temp = alist[i]
alist[i] = alist[min_idx]
alist[min_idx] = temp
alist = [54,26,93,17,77,31,44,55,20]
selectionsort(alist)
print(alist)
该函数应返回有序列表:[17, 20, 26, 31, 44, 54, 55, 77, 93]
【问题讨论】:
标签: python selection-sort