为了账号安全,请及时绑定邮箱和手机立即绑定

冒泡排序查询

冒泡排序查询

蓝山帝景 2021-11-09 10:53:58
我不明白第 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] = tempalist = [54,26,93,17,77,31,44,55,20]bubbleSort(alist)print(alist)
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

这与算法无关。range有 3 个参数

在这种情况下,这意味着

  • 从最后一个元素开始(索引=N-1)

  • 继续直到第二个(索引= 0)

  • step=-1(倒退)


查看完整回答
反对 回复 2021-11-09
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-11-09
?
侃侃无极

TA贡献2051条经验 获得超10个赞

正如评论所暗示的那样,如果您在 google 上搜索了 的文档range,您可能已经解决了问题。您的线路:

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

表示范围从列表的末尾开始(长度为负 1,因为列表的索引0),以1(0 之前的一个)结束,步长为-1(向后)。


查看完整回答
反对 回复 2021-11-09
  • 3 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信