码迷,mamicode.com
首页 > 编程语言 > 详细

sort cmp函数的写法 (特判排序 二级排序)

时间:2017-05-24 12:51:10      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:位置   images   9.png   microsoft   style   return   技术分享   src   函数   

特判排序:

看看以下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函数的写法 (特判排序 二级排序)

标签:位置   images   9.png   microsoft   style   return   技术分享   src   函数   

原文地址:http://www.cnblogs.com/Jadon97/p/6897953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!