快速排序之分割数组

来源:互联网 发布:三国志9最新优化伴侣 编辑:程序博客网 时间:2024/05/23 01:14
import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Permutation {    public static void main(String[] args){        int nums[] = {12, 2, 3,9,1,15,4,20,10,-1};        boolean isUsed[] = new boolean[nums.length];        List<Integer> result = new ArrayList<Integer>();         List<List<Integer>> resultList = new ArrayList<List<Integer>>();//      doPermute(nums, isUsed, result, resultList);//      System.out.println(resultList.toString());        Object[] aa = result.toArray();        // result.toArray(a)        recMergeSort(nums, 0, nums.length-1);    }    public static void doPermute(int[] nums, boolean[] isUsed, List<Integer> result, List<List<Integer>> resultList){        if(result.size()==nums.length){            resultList.add(new ArrayList<>(result));            return;        }        for(int i = 0;i<nums.length;i++){            if(!isUsed[i]){                result.add(nums[i]);                isUsed[i] = true;                doPermute(nums, isUsed, result, resultList);                result.remove(result.size()-1);                isUsed[i] = false;            }        }    }    static int j =0;    public static void recMergeSort(int[] arr, int low, int upper){        List<Integer> list = new ArrayList<Integer>();        for(int i =low;i<=upper;i++){            list.add(arr[i]);        }//      System.out.println("sub array: "+Arrays.asList(arr));        System.out.println("sub array: "+(j++)+" "+list);        if(low == upper){            return;        }        else{            int mid = (low + upper)/2;            recMergeSort(arr, low, mid);            recMergeSort(arr, mid+1, upper);        }    }}

运行结果如下:

sub array: 0 [12, 2, 3, 9, 1, 15, 4, 20, 10, -1]sub array: 1 [12, 2, 3, 9, 1]sub array: 2 [12, 2, 3]sub array: 3 [12, 2]sub array: 4 [12]sub array: 5 [2]sub array: 6 [3]sub array: 7 [9, 1]sub array: 8 [9]sub array: 9 [1]sub array: 10 [15, 4, 20, 10, -1]sub array: 11 [15, 4, 20]sub array: 12 [15, 4]sub array: 13 [15]sub array: 14 [4]sub array: 15 [20]sub array: 16 [10, -1]sub array: 17 [10]sub array: 18 [-1]
原创粉丝点击