List = [7,5,4,6,1,3,2]
n = 1
for index in range(len(List)):
for _index in range(index):
n += 1
if List[_index] > List[index]:
pop = List.pop(index)
List[_index:_index] = [pop]
print(List)
break
print(n)
在最佳情况下,每一个弹出值都在合适的位置,于是它只需和一个条目做比较。因此,将排入排序应用到一个有n个条目的列表需要n-1次比较。
在最差情况下,每一个弹出值都必须与列表中排在它前面的所有条目进行比较,才能找到合适的位置。因此,在给有n个条目的列表进行排序时,需要进行的比较次数为1+2+3+…+(n-1),根据等差数列求和公式得出1/2*(n**2-n)
Sn = na1+n(n-1)d/2
= n(a1+an)/2
解
Sn = (n-1) + (n-1)(n-2)/2
= n-1 + 1/2*n**2 -n- 1/2*n + 1
= 1/2*n**2 - 1/2*n
= 1/2(n**2 - n)