目前,我的任务是用python编写冒泡排序算法,而我遇到的解决方案之一就是这段代码。
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
在第1行中,范围用-1,0,-1指定,我不知道为什么或这样做,并且想知道是否有人可以提供帮助?谢谢。
range(len(alist)-1,0,-1)
返回一个整数范围,从开始len(alist) - 1
,继续命中0
,直到-1
每次迭代增加(减少1)。
第一个for
循环使用此range
语句从alist
(index len(alist) -1
)的末尾开始,然后向后开始到(index )的末尾0
,一次一次。第二个for
循环开始于0
计数直到passnum
-您的代码首先检查整个列表,然后检查除了列表的最后一个元素之外的所有内容,然后检查倒数第二个元素,等等。
Bubblesort的此实现将最大的元素推到数组的末尾-因为我们知道最大的元素将在第一个for
循环的每次通过之后结束,因此无需将要排序的下一个元素比较到数组的末尾列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句