Не работает Быстрая Сортировка
Смотрю урок по QuickSort на ютубе, где показан способ реализации QuickSort без рекурсии: https://www.youtube.com/watch?v=4s-aG6yGGLU Решил реализовать данный алгоритм на языке Python, все отлично, все работает, до тех пор пока я не передал следующей функции массив [6, 5, 1, 3, 8, 4, 7, 9, 2, 10].
def qs_nr(array): # Быстрая сортировка без рекурсии
wall = 0 # "Стенка", отделяющая отсортированный массив от неотсортированного
while wall != len(array) - 1: # Цикл, проверяющий положение стенки
pivot = array[len(array) - 1]
for index in range(wall, len(array)): # Цикл, который проходит по неотсортированной части массива
if array[index] < pivot: # Если элемент неотсорт. массива меньше опорного
array[index], array[wall] = array[wall], array[index] # Добавляем элемент в отсорт. список
wall += 1 # Показываем, что отсорт. список увеличился на один элемент
array[wall], array[len(array) - 1] = array[len(array) - 1], array[wall] # Добавляем опорный элемент в отсорт. список
return array
Если передать данной функции массив, указанный выше, то результат будет такой: [6, 5, 1, 3, 8, 4, 7, 9, 2, 10]. Т.е из-за того, что 10 стоит в конце массива и является НАИБОЛЬШИМ в массиве, сортировка не происходит. Сижу уже час над данной функцией, но никак не могу найти решение данной задачи. Помогите!