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

比较函数怎么工作的

不懂比较函数在这里的工作原理啊,返回的1,-1,0都是怎么起作用的,怎么起到了正序和倒序的排序方式,求帮助

正在回答

2 回答

sorted默认是

sorted([4,6,8,2等等],cmp)

cmp是里面介绍的输出-1、1或者0,sorted函数通过cmp的返回值来判断比较的两个数的前后顺序。

相当于是cmp为sorted提供对比的标准,sorted按照那个标准来排序。sorted函数只认识cmp返回的1、-1和0,并且按照上面介绍的规则来排序。至于从大到小还是从小到大完全取决于cmp的定义。

sorted的排序算法是python设计好的,我们并不需要知道。如果你接触过其它的语言,在设计到排序时会接触一些排序的算法,那些算法有好有坏,但可以想象,python的设计者一定是把最好的排序算法用在了sorted里面(并且据我所知,好像不是冒泡法)。如果非要知道排序算法也很简单,自己定义cmp函数,让它吧每一次比较的较大或较小的数打印出来,再查一下不同的排序算法,应该就可以反推出来了。

结合教程的介绍,希望你能理解。教程的介绍在这节感觉有些粗糙了。

3 回复 有任何疑惑可以回复我~

你可以试一下

原来的 if x > y:
       return -1

改成 

     if x < y: 

       return -1

看一下结果是什么

这个工作原理应该就是别的程序的所谓的“冒泡法” 一组数,将两个相邻的数依次比较大小 ,大的(或者小的)往前挪,比较完了,就会形成从大小排列的新的一组数

0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

比较函数怎么工作的

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