选择排序
思路
先从前n个数选出最小的,和li[0]交换,再从1 ~ n-1 中选出最小的和li[1]交换,直到结尾。
代码
li = [4,3,5,1,6,2]
n = len(li)
for i in range(n - 1):
index = i
tmp = li[index]
for j in range(i + 1, n):
if li[j] < tmp:
tmp, index = li[j], j
li[i], li[index] = li[index], li[i]
print(li)
效率分析
该算法最好情况和最坏情况都是 n +(n-1) + (n-2) + … + 2 = (2 + n) * (n -1) / 2