【发布时间】:2013-10-31 02:41:31
【问题描述】:
在这个程序中,我想计算插入排序中的数据比较次数,但是我的代码没有按预期工作。
def insertionSort(list):
numOfComp = 0
for i in range(1,len(list)):
value = list[i]
j = i - 1
while j>=0:
if value < list[j]:
list[j+1] = list[j]
list[j] = value
j = j - 1
numOfComp += 1
if value >= list[j]:
numOfComp += 1
j = j - 1
else:
break
print("Number of data comparisons:",numOfComp)
print("Sorted list:",list)
【问题讨论】:
-
“未按预期工作”是什么意思?嗯,这甚至不是我认为的插入排序
-
我无法计算真实的比较次数,并且排序算法无法正常工作。
-
这是一个很好的起点:en.wikipedia.org/wiki/Insertion_sort
-
实际上,如果我删除第二个 if 条件,我的算法就可以正常工作。但我也必须计算比较次数。
-
如果您认为比较次数有误,如果您删除第二个?
标签: python insertion-sort