Python中的气泡排序函数

Python中的气泡排序函数,python,Python,我有一个关于冒泡排序函数的问题,我不明白。任务是在代码的所有部分添加详细的注释,解释它在做什么。我不确定的代码行是第2行和第3行(末尾标有“#?”)。有人能很好地解释一下这些台词在做什么吗?非常感谢您的帮助 def bubbleSort(alist): for passnum in range(len(alist)-1,0,-1): #? for i in range(passnum): #? if alist[i] > alist[i+1]

我有一个关于冒泡排序函数的问题,我不明白。任务是在代码的所有部分添加详细的注释,解释它在做什么。我不确定的代码行是第2行和第3行(末尾标有“#?”)。有人能很好地解释一下这些台词在做什么吗?非常感谢您的帮助

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

list = [54,26,93,17,77,31,44,55,20]
bubbleSort(list)
print(list)
根据:

  • len(alist)-1
    是列表(8)的长度减去一(7)。它代表一些“起始”数字
  • 0
    表示“停止”编号
  • -1
    表示“步骤”编号
它们在
范围内(len(alist)-1,0,-1)
表示“从7计数到0,向后-一次一个负步骤”

range()
只传递一个参数(一个数字)时,它从0计数到该数字。文档给出了以下示例:

list(range(10))  
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

因此,代码从7计数到0——每次执行一次计数,它都会立即从0计数到该数字。

它们几乎是
for(int-passnum=alist.length()-1;passnum>0;--passnum){for(int-i=0;i
。您应该阅读。我为你链接了它。您所要做的就是仔细阅读参数是什么,更好地了解
for
循环的作用:
for i in range(passnum):
list(range(10))  
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]