关于python:列表索引超出范围

List index out of range

我在python中实现quicksort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#QuickSort python

def sort(array):

    leftside = []
    rightside = []
    equal = []

    pivot = array[0]

    if (len(array);gt;1):
        for item in array:
            if item ;lt; pivot:
                leftside.append(item)
            if item ;gt; 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)

我得到错误
"枢轴=数组[0]
IndexError:列表索引超出范围",我在此代码中看不到任何可能导致索引错误的内容。请您看看吗?


pivot = array[0]应该在if (len(array);gt;1):中。 否则,您可以尝试在空数组上执行此操作。

进行了其他一些快速修复。 看看这是如何工作的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#QuickSort python

def sort(array):

    leftside = []
    rightside = []
    equal = []

    if (len(array);gt;1):
        pivot = array[0]
        for item in array:
            if item ;lt; pivot:
                leftside.append(item)
            if item ;gt; 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))