首页 > 代码库 > sort cmp函数的写法 (特判排序 二级排序)
sort cmp函数的写法 (特判排序 二级排序)
特判排序:
看看以下cmp写法,猜想作用:
该函数作用就是“将正数升序排列, 负数排到最后”
我认为cmp函数的一个特性就是, 如果return false, 那么函数就会将他们互换位置, return true就会保持原来位置不变。(快排的思想没掌握,暂时如此理解)
所以这函数可以解读为:
p1是前面的元素, p2是后面的元素。
①如果p1<0的话,就是p1是负数,return false,直接交换
②p1>0 p2 <0 那么正数已经在负数后面了,return true,不需要动。
③p1>0 && p2 > 0 那么就按升序排列, return p1.sc36 < p2.sc36
假设有10个数:0 8 9 4 -4 4 -2 2 -7 -4。
运行以上代码:
如果需要对负数部分也进行排列,可以加上这一行。
二级排序:
然后再给出一个cmp二级排序的写法
sort cmp函数的写法 (特判排序 二级排序)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。