比较函数怎么工作的
不懂比较函数在这里的工作原理啊,返回的1,-1,0都是怎么起作用的,怎么起到了正序和倒序的排序方式,求帮助
不懂比较函数在这里的工作原理啊,返回的1,-1,0都是怎么起作用的,怎么起到了正序和倒序的排序方式,求帮助
2015-10-21
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函数,让它吧每一次比较的较大或较小的数打印出来,再查一下不同的排序算法,应该就可以反推出来了。
结合教程的介绍,希望你能理解。教程的介绍在这节感觉有些粗糙了。
举报