调用的函数:(不考虑类)def partition( pivot, lst ):
less, same, more = list(), list(), list()
for val in lst:
if val < pivot:
less.append(val)
elif val > pivot:
more.append(val)
else:
same.append(val)
return less, same, more
def medianOf3(lst):
"""
From a lst of unordered data, find and return the the median value from
the first, middle and last values.
"""
finder=[]
start=lst[0]
mid=lst[len(lst)//2]
end=lst[len(lst)-1]
finder.append(start)
finder.append(mid)
finder.append(end)
finder.sort()
pivot_val=finder[1]
return pivot_val
主代码
^{pr2}$
因此,这段代码应该获取一个列表,并使用quicksort实现的中值3对其进行排序,直到达到深度递归限制,此时函数将使用堆堆然后,该代码的结果被输入另一个程序,该程序设计用于测试长度为1,1010010001000000000的算法。在
但是,当我运行代码时,告诉我长度1和10可以正常工作,但是在这之后,它给出了一个列表索引越界错误
3函数中值中的start=lst[0]
我不明白为什么。在