Что касается вашего кода, вы должны l oop через все элементы каждый раз, когда isSorted
равно False
. Таким образом, вы должны инициализировать l = 0
и r = 1
каждый раз, когда выполняется внешний while
l oop.
Нет необходимости использовать две переменные счетчика l
& r
, вы можете просто реализовать пузырьковую сортировку следующим образом:
def bubbleSort(array):
isSorted = False
while not isSorted:
isSorted = True
for i in range(1, len(array)):
if array[i] < array[i - 1]:
swap(i, i - 1, array)
isSorted = False
return array
def swap(i, j, array):
array[i], array[j] = array[j], array[i]
return
И когда вы выполните >>>print(bubbleSort([10, 2, 1, 3, 2, 6, 25]))
Вывод будет:
[1, 2, 2, 3, 6, 10, 25]