冒泡排序查询

问题描述 投票:2回答:3

我不明白第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)
python bubble-sort
3个回答
3
投票

这与算法无关。 range有3个论点

在这种情况下,这意味着

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

0
投票

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


0
投票

正如评论所示,如果你用Google搜索range的文档,你可能已经解决了问题。你的路线:

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

表示范围从列表末尾开始(长度减去1,因为列表是0 indexed),结束于1(一个在0之前),步长为-1(向后)。

© www.soinside.com 2019 - 2024. All rights reserved.