Программа быстрой сортировки — она выдает мне ошибку типа

#python-3.x #algorithm #sorting #quicksort

Вопрос:

 def quick_sort(sequence):
    length = len(sequence)
    if length <= 1:
        return
    else:
        pivot = sequence.pop()

    items_g = []
    items_l = []

    for item in sequence:
        if item > pivot:
            items_g.append(item)
        else:
            items_l.append(item)

    return quick_sort(items_l)   [pivot]   quick_sort(items_g)


print(quick_sort([5, 89, 7, 41, 2]))
 

Комментарии:

1. если длина

2. (Такие виды обмена разделами, не на месте, как этот, будут иметь неблагоприятный дефицит ресурсов. else: Следующий базовый случай неуместен.)

Ответ №1:

Вы должны вернуть пустой список, а не ни одного

 def quick_sort(sequence):
    length = len(sequence)
    if length <= 1:
        return []
    else:
        pivot = sequence.pop()

    items_g = []
    items_l = []

    for item in sequence:
        if item > pivot:
            items_g.append(item)
        else:
            items_l.append(item)

    return quick_sort(items_l)   [pivot]   quick_sort(items_g)


print(quick_sort([5, 89, 7, 41, 2]))