首页 > 其他 > 详细

三路快排

时间:2020-03-30 19:51:40      阅读:68      评论:0      收藏:0      [点我收藏+]
 1 void partition(int arr[], int l, int r, int num)//三路快排
 2 {
 3     int less = l - 1;
 4     int more = r + 1;
 5     int cur = 0;
 6     while (cur < more)
 7     {
 8         if (arr[cur] < num)//左边交换,直接下一个数
 9         {
10             swap(arr[++less], arr[cur++]);
11         }
12         else if (arr[cur] > num)// 右边交换,注意交换之后还是看当前位置的数
13         {
14             swap(arr[--more], arr[cur]);
15         }
16         else  //等于这个数,直接下一个数
17         {
18             cur++;
19         }
20     }
21     return;
22 }

 

三路快排

原文:https://www.cnblogs.com/yuhong1103/p/12600467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!