剑指offer之partition算法

1 问题
 partition 算法:
从无序数组中选出枢轴点 pivot,然后通过一趟扫描,以 pivot 为分界线将数组中其他元素分为两部分,使得左边部分的数小于等于枢轴,右边部分的数大于等于枢轴(左部分或者右部分都可能为空),最后返回枢轴在新的数组中的位置。
如果原始数组为[5,9,2,1,4,7,5,8,3,6],那么整个处理的过程如下图

Partition 可不只用在快速排序中,还可以用于 Selection algorithm(在无序数组中寻找第K大的值)中.
  2 代码实现
我们按照算法需求简单实现如下
    void swap(int* a, int* b)     {         int temp = *a;         *a = *b;         *b = temp;     }                 int partition(vector& vector, int start, int end)     {         if (vector.size() < 1

剑指offer之partition算法最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/27858.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>