气泡排序查询

时间:2019-02-14 15:08:48

标签: python bubble-sort

我不明白第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 :(得分:3)

与算法无关。 range有3个参数

  • 来自
  • 步骤

在这种情况下,这意味着

  • 从最后一个元素开始(index = N-1)
  • 继续直到第二个(index = 0)
  • step = -1(后退)

答案 1 :(得分:0)

这些是range(start, stop, sep)https://docs.python.org/3/library/functions.html#func-range)的参数 在您的情况下,您可以创建一个范围,该范围以列表的-1(len(alist)-1)的长度开头,并通过采用-1的步骤计数为0。

答案 2 :(得分:0)

正如评论所建议的那样,如果您搜索了range的文档,则可能会解决问题。您的行:

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

表示范围从列表的结尾开始(长度为负1,因为列表为0 indexed),结束于 1 (位于0之前的一个),步骤为 -1 (向后)。