我在 python 中实现快速排序
#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)
我收到错误“pivot = array[0] IndexError: list index out of range”,我在这段代码中没有看到任何可能导致索引错误的东西。你能看一下吗?
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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句