冒泡排序查询

我不明白第 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)


蓝山帝景
浏览 191回答 3
3回答

哈士奇WWW

这与算法无关。range有 3 个参数从到步在这种情况下,这意味着从最后一个元素开始(索引=N-1)继续直到第二个(索引= 0)step=-1(倒退)

MMMHUHU

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

侃侃无极

正如评论所暗示的那样,如果您在 google 上搜索了 的文档range,您可能已经解决了问题。您的线路:range(len(alist)-1,0,-1)表示范围从列表的末尾开始(长度为负 1,因为列表的索引为0),以1(0 之前的一个)结束,步长为-1(向后)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python