找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2172|回复: 4

[求助] 运行结果错误啥原因

4

主题

7

帖子

7

积分

贫民

积分
7
平平 发表于 2018-5-28 19:31:11 | 显示全部楼层 |阅读模式
排序运行结果不对,求大神帮忙看看逻辑错在什么地方
def sort(list):
    for index in range(1,len(list)):
        value=list[index]
        i=index-1
        while i>=0:
            if list[i]>value:
                list[i],value=value,list[i]
                i=i-1
            else:
                break

回复

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
xiaoluo 发表于 2018-5-28 22:12:35 | 显示全部楼层
这是冒泡算法,问题出在这句话上,list[i],value=value,list[i],交换的只是value值,而不是数组中的list[index]的值,建议改为:
list[i], list[index] = list[index], list[i]  # 较大的值放到后面
index = i   # 此时需要更新index的值,因为需要比较的前两个值了
i=i-1

你试试看
回复 支持 反对

使用道具 举报

4

主题

7

帖子

7

积分

贫民

积分
7
平平  楼主| 发表于 2018-5-28 22:58:46 | 显示全部楼层
xiaoluo 发表于 2018-5-28 22:12
这是冒泡算法,问题出在这句话上,list,value=value,list,交换的只是value值,而不是数组中的list的值,建 ...

感谢,完全没问题。
我再理解下意思
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-5-28 23:40:32 | 显示全部楼层
参考

Screenshot from 2018-05-28 23-39-34.png
回复

使用道具 举报

4

主题

7

帖子

7

积分

贫民

积分
7
平平  楼主| 发表于 2018-5-29 10:46:00 | 显示全部楼层

感谢感谢,我理解下先
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表