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;
        }
    }
  • 相关阅读:
    日志管理工具logrotate
    springboot2整合logback.xml动态修改日志打印级别
    mybatis框架之装饰模式
    mybatis源码分析之06二级缓存
    后勤信息反馈---场景描述
    《人月神话》读后感---计算机产品的文档
    android studio 使用第三方模拟器连接方法
    第八周总结
    Android Studio 和 SDK 下载、安装和环境变量配置
    求最大子数组并单步显示
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/4442087.html
Copyright © 2011-2022 走看看