列表索引超出范围

市场

我在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章