划分算法的意思是将序列里的值分成两组,一组里的每个值大于某个指定的值,另一组的每个值小于指定的值。
import java.util.Arrays;
public class Partition {
public static void partition(int[] arrays,int median){
int left = -1;
int right = arrays.length;
while(true){
while(left < right && arrays[++left] < median);
while(left < right && arrays[--right] > median);
if(left >= right){
break;
}else{
change(arrays,left,right);
}
}
}
public static void change(int[] arrays,int left,int right){
int temp = arrays[left];
arrays[left] = arrays[right];
arrays[right] = temp;
}
public static void main(String[] args) {
int[] a = {11,222,44,63,84,24,53,123,25,98,76,34};
partition(a, 24);
System.out.println(Arrays.toString(a));
}
}