数组拆分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组拆分相关的知识,希望对你有一定的参考价值。
温习并学习下算法,记录设计地点滴。
数组拆分是将一个无序数组,拆分成两个子数组,子数组A地元素全部比数组元素小,子数组B地元素全部比数组元素大。
代码如下:
package test; import java.util.Arrays; public class PartitionPolicy { public void part(int[] array, int key) { // swap int temp = array[key]; array[key] = array[array.length-1]; array[array.length-1] = temp; int j=-1; for (int i=0; i<array.length; i++) { if (array[i] < array[key]) { j++; temp = array[i]; array[i] = array[j]; array[j] = temp; } } temp = array[j+1]; array[j+1] = array[array.length-1]; array[array.length-1] = temp; } public static void main(String[] args) { PartitionPolicy p = new PartitionPolicy(); int[] toSortArr = {4,2,9,77,6,33,100,1,2,56,20}; p.part(toSortArr, 5); System.out.println(Arrays.toString(toSortArr)); } }
运行结果如下:
[4, 2, 9, 6, 1, 2, 33, 77, 20, 56, 100]
以上是关于数组拆分的主要内容,如果未能解决你的问题,请参考以下文章