快排
def quick_sort(data,low,high):
if low<high:
i=low
j=high
temp=data[i]
while i<j :
if i<j and temp<=data[j]:
j=j-1
if i<j:
data[i]=data[j]
if i<j and temp>=data[j]:
i=i+1
if i<j:
data[j]=data[i]
data[i]=temp
quick_sort(data,low,i-1)
quick_sort(data,i+1,high)
if __name__=='__main__':
data=[50, 36, 66, 76, 36, 12, 25, 95]
# data=[0,1,2,3,4,5]
print(data)
quick_sort(data,0,len(data)-1)
print(data)
ERROR
IndexError: list index out of range
原因:
- list[index]中的index下标超出范围了,所以出现了访问越界;
- list本身为空
经过检查发现,是
quick_sort(data,0,len(data)) # 错误
quick_sort(data,0,len(data)-1)
RecursionError: maximum recursion depth exceeded in comparison
超过了最大递归深度