我在python中实现了quicksort
#QuickSort python
def sort(array):
leftside = []
rightside = []
equal = []
pivot = array[0]
if (len(array)>1):
for item in array:
if item < pivot:
leftside.append(item)
if item > pivot:
rightside.append(item)
if item == pivot:
equal.append(item)
else:
print array
print sort(leftside) + equal + sort(rightside)
array = [1,2,5,4,6,2,3]
sort(array)
我收到错误 &#34; pivot = array [0] IndexError:列表索引超出范围&#34;,我在这段代码中看不到任何可能导致索引错误的内容。你能看一下吗?
答案 0 :(得分:0)
pivot = array[0]
应该在if (len(array)>1):
。否则你可能会尝试在空数组上进行。
做了一些其他快速修复。看看它是如何工作的:
#QuickSort python
def sort(array):
leftside = []
rightside = []
equal = []
if (len(array)>1):
pivot = array[0]
for item in array:
if item < pivot:
leftside.append(item)
if item > pivot:
rightside.append(item)
if item == pivot:
equal.append(item)
return sort(leftside) + equal + sort(rightside)
else:
return array
array = [1,2,5,4,6,2,3]
print(sort(array))