zoukankan      html  css  js  c++  java
  • 寻找两个数组中的公共元素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;
        }
    }
  • 相关阅读:
    php ajax分页的例子,在使用中
    PHP远程文件管理,可以给表格排序,遍历目录,时间排序
    背景变暗的div可拖动提示窗口,兼容IE、Firefox、Opera
    CSS简洁的左侧菜单(侧拉菜单,向右显示)
    无间断循环滚动(兼容IE、FF)
    poj 1007 求逆序数
    poj 1775 简单搜索
    面向对象之继承和组合浅谈
    在flex中导入fl包
    C99中包括的特性
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/4442087.html
Copyright © 2011-2022 走看看