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

传入是什么回事

sorted([36, 5, 12, 9, 21], reversed_cmp)就是把reverse 代替了sorted 了吗


正在回答

1 回答

错了, reversed_cmp只是判断它自己的两个参数,如x,y的关系。如果你觉得x应该在y的左边,那么就返回1, 如x = 1, y = 2 (你先从小到大排列顺序)。反之,reversed_cmp返回0(相等)或-1。sorted排序原理是,将两个数字比较,带到reversed_cmp中,如果为1,说名排序正确,不用交换位置,如果-1,则交换他们的位置。根据你的例子,第一次是比较[36, 5, 12, 9, 21]中的36和5(如果你想升序排), 那么reversed_cmp将会返回-1,sorted就会交换他们的位置,那么一个循环后,[36, 5, 12, 9, 21]变为[5, 36, 12, 9, 21],接下去继续比,可能是36和12比(根据具体算法),知道都比完。reversed_cmp就是给出一个是否交换的依据

1 回复 有任何疑惑可以回复我~
#1

咸猪手探花

额,关于正负1的方向,可能弄反了
2016-05-25 回复 有任何疑惑可以回复我~
#2

poetek 提问者

非常感谢!
2016-05-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

传入是什么回事

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信