寻找两个数组中的公共元素Java程序代码

package lianxi;
import java.util.*;
public class UnionSearch
{
    public static void main(String[] args)
    {
        int[] array1 = {49,36,13,27,48,100,67,73,85,28,99,56};
        int[] array2 = {34,45,13,67,23,56,28,90};
        
        long mtime,etime,time;
        Date  myDate = new Date();
        mtime = myDate.getTime();
        //对数组进行快速排序
        QuickSort qs = new QuickSort();
        array1 = qs.quickSort(array1, 0, array1.length - 1);
        array2 = qs.quickSort(array2, 0, array2.length - 1);
        
        //找两数组中的公共元素
        int[] array;
        array = qs.unionElment(array1, array2);
        Date mydate = new Date();
        etime = mydate.getTime();
        time = etime - mtime;
        System.out.println(mtime+" 运行时间为:"+time+"  "+etime);
        //打印公共元素
        for(int i = 0; i < array.length;i ++)
        {
            if(array[i] != 0)
            {
                System.out.print(" ");
                System.out.print(array[i]);
            }
            else
            {
                break;
            }
        }
    }
    
}

class QuickSort
{    
    public int[] quickSort(int[] array,int low,int high)
    {
        if (low > high)
        {
            return null;
        }
        int i = low;
        int j = high;
        while (low < high)
        {
            int pivot = array[low];
            while (low < high && array[high] >= pivot)
            {
                high --;
            }
            if (low < high)
            {
                int temp = array[low];
                array[low] = array[high];
                array[high] = temp;
                low ++;
            }
            while (low < high && array[low] <= pivot)
            {
                low ++;
            }
            if (low < high)
            {
                int temp = array[high];
                array[high] = array[low];
                array[low] = temp;
                high --;
            }
        }
        quickSort(array,i,low - 1);
        quickSort(array,low + 1,j);
        return array;
    }
    public int[] unionElment(int[] array1,int[]array2)
    {
        int length_array1 = array1.length;
        int length_array2 = array2.length;
        int union_length = length_array1<length_array2?length_array1:length_array2;
        int[] array = new int[union_length];
        int i = 0;
        int j = 0;
        int k = 0;
        while (i < length_array1 && j < length_array2)
        {
            if (array1[i] < array2[j])
            {
                i ++;
            }
            else if (array1[i] > array2[j])
            {
                j ++;
            }
            else
            {
                array[k] = array1[i];
                i ++;
                j ++;
                k ++;
            }
                
        }
        return array;
    }
}