取出两个有序数组里面的公共元素 java_寻找两个数组中的公共元素Java程序代码...

本文展示了如何使用Java编程找出两个已排序数组的交集。首先,通过快速排序算法对数组进行排序,然后使用双指针方法找到公共元素。最后,输出运行时间和公共元素列表。
摘要由CSDN通过智能技术生成

packagelianxi;import java.util.*;public classUnionSearch

{public static voidmain(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};longmtime,etime,time;

Date myDate= newDate();

mtime=myDate.getTime();//对数组进行快速排序

QuickSort qs = newQuickSort();

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= newDate();

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;

}

}

}

}classQuickSort

{public int[] quickSort(int[] array,int low,inthigh)

{if (low >high)

{return null;

}int i =low;int j =high;while (low

{int pivot =array[low];while (low < high && array[high] >=pivot)

{

high--;

}if (low

{int temp =array[low];

array[low]=array[high];

array[high]=temp;

low++;

}while (low < high && array[low] <=pivot)

{

low++;

}if (low

{int temp =array[high];

array[high]=array[low];

array[low]=temp;

high--;

}

}

quickSort(array,i,low- 1);

quickSort(array,low+ 1,j);returnarray;

}public int[] unionElment(int[] array1,int[]array2)

{int length_array1 =array1.length;int length_array2 =array2.length;int union_length = length_array1

{if (array1[i]

{

i++;

}else if (array1[i] >array2[j])

{

j++;

}else{

array[k]=array1[i];

i++;

j++;

k++;

}

}returnarray;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值