1

これは私のコードです:

from random import randint

def quick_sort(sort_me):
    if len(sort_me) < 2:
        return sort_me

    pivot = sort_me[0]

    this = lower = upper = []

    for x in sort_me:
        if x < pivot:
            lower.append(x)
        elif x > pivot:
            upper.append(x)
        else:
            this.append(x)

    return quick_sort(lower) + this + quick_sort(upper)

そして、ターミナルで見ることができるのはこれだけです:

File "sorts.py", line 19, in quick_sort
  return quick_sort(lower) + this + quick_sort(upper)
RuntimeError: maximum recursion depth exceeded

リストに何か問題があると思いますがthis、何が原因かわかりません。ヘルプ!

4

1 に答える 1

5
this = lower = upper = []

Python では、割り当てによってコピーが作成されることはありません。この行は 3 つのリストを作成しません。1 つのリストを作成しthis、 、lower、およびupperすべてがそのリストを参照するようにします。3 つのリストを作成します。

this = []
lower = []
upper = []
于 2013-08-04T22:17:46.667 に答える