更新快排中的partition
Posted lijins
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新快排中的partition相关的知识,希望对你有一定的参考价值。
这一次是将partition 过程中, 维护三个区域。 <x =x >x 三区域。 还有个待定的区域。
/* * 将数组划分为三个分区, 小于arr[R], 等于arr[R], 大于arr[R]; */ public static int[] partion01(int arr[], int L, int R){ int less = L-1; int more = R; int cur = L; while( cur < more ){ if( arr[cur] < arr[R] ){ swap(arr, ++less, cur++); }else if( arr[cur] > arr[R] ){ swap(arr, --more, cur); }else { cur++; } } swap(arr, more, R); return new int[] {less+1,more}; }
以上是关于更新快排中的partition的主要内容,如果未能解决你的问题,请参考以下文章