Bubble sort query - PullRequest
       7

Bubble sort query

0 голосов
/ 14 февраля 2019

Я не понимаю, что происходит в строке 2, с "-1, 0, -1".Зачем это нужно, и что представляет собой ноль?

Я запустил код, когда я удалил часть «-1, 0, -1», и он не отсортировал список.Я не понимаю, почему это такая важная часть кода

def bubbleSort(alist):
    for passnum in range(len(alist)-1,0,-1): #line 2
        for i in range(passnum):
            if alist[i]>alist[i+1]:
                temp = alist[i]
                alist[i] = alist[i+1]
                alist[i+1] = temp

alist = [54,26,93,17,77,31,44,55,20]
bubbleSort(alist)
print(alist)

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Это аргументы для range(start, stop, sep) (https://docs.python.org/3/library/functions.html#func-range)). В вашем случае вы создаете диапазон, который начинается с длины вашего списка -1 (len(alist)-1) и отсчитывается до 0, выполняя шаги -1.

0 голосов
/ 14 февраля 2019

Как показывают комментарии, если бы вы гуглили документы на range, вы могли бы все уладить.Ваша строка:

range(len(alist)-1,0,-1)

Означает, что диапазон начинается с конца списка (это длина, минус 1, поскольку списки 0 проиндексированы ),и заканчивается на 1 (один перед 0) с шагом -1 (назад).

0 голосов
/ 14 февраля 2019

Это не имеет ничего общего с алгоритмом.range имеет 3 аргумента

  • от
  • до
  • step

В этом случае это означает

  • начать с последнего элемента (индекс = N-1)
  • продолжить до второго (индекс = 0)
  • шаг = -1 (перейти назад)
...