天天看点

快速排序 实现两个数组排序

package com.spring;
import java.util.Arrays;

public class Demo {
    public static int  partition(int[] A, int low , int high){
        int pivot =A[low];
        while(low<high){
            while(low <high && A[high]>pivot) --high;
            A[low] =A[high];
            while(low<high&&A[low]<=pivot) ++low;
            A[high]=A[low];
        }
        A[low]=pivot;
        return low;
        }

        public static  int[] quickSort(int[] A, int low,int high){
        if(low <high){
            int pivot = partition(A,low ,high);
            quickSort(A,low,pivot-1);
            quickSort(A,pivot+1,high);
        }
        
        return A;
        }

        public static int[] merge(int[] a,int[] b){
        int[] C= new int[a.length+b.length];
            for (int i = 0; i <a.length ; i++) {
                C[i]=a[i];
            }
            for (int i = 0; i <b.length ; i++) {
                C[a.length+i]=b[i];
            }
         return  Demo.quickSort(C,0,C.length-1);
        }
    public static void main(String[] args) {
        int[]  A= {1,3,5,7};
        int[]  B= {2,4,6,8};
        System.out.println(Arrays.toString(Demo.merge(A,B)));
    }
    }