我有一个关于气泡排序功能一部分的问题,我不了解。任务是向代码的所有部分添加详细的注释,以解释其功能。我不确定的代码行是数字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)
答案 0 :(得分:0)
for passnum in range(len(alist)-1,0,-1):
根据range function documentation:
len(alist) - 1
是列表的长度(8)减一(7)。它代表一些“起始”数字。0
代表“停止”数字。-1
代表“步骤”编号。 它们在range(len(alist) - 1, 0, -1)
中在一起表示“从7倒数到0,一次-负数一次”。
for i in range(passnum):
当range()
仅传递一个参数(一个数字)时,它从0计数到该数字。文档提供了以下示例:
list(range(10))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
因此,代码从7计数到0-每次执行一次计数时,它都会立即从0计数到该数字。