选择排序

选择排序先思想:从列表中找出最小(或最大的元素,这里选择最小)的元素,返回其在列表中的位置(下标),将其(元素)添加到一个的结果列表中(也就是排序结果列表),并将其从原列表中删除;

时间复杂度为:O(nXn)

def find_smallest(li):
smallest = li[0]
smallest_index = 0
for i in range(1, len(li)):
if li[i] < smallest:
smallest = li[i]
smallest_index = i
return smallest_index


def selection_sort(li):
resli = []
for i in range(len(li)):
smallest = find_smallest(li)
resli.append(li.pop(smallest))
return resli


if __name__ == '__main__':
li = [5, 3, 6, 2, 10, 22, 87, 56, 22, 96]
print(selection_sort(li))
原文地址:https://www.cnblogs.com/songyuejie/p/11367868.html