两个已排序的整型数组,求交集,最快算法
2011-09-09 10:12
375 查看
运用归并排序的思想,实现这个求交集!
#include<iostream>
using namespace std;
void merge(int a[],int b[],int n,int m)
{
int i=0,j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])
{
cout<<"两个数组中重复的数字其中一个是:"<<a[i]<<endl;
i++;
j++;
}
else if(a[i]>b[j])
{
j++;
}
else i++;
}
}
int main()
{
cout<<"分别输入两个数组的输入数字的个数(<100)"<<endl;
int n,m;
cin>>n>>m;
int a[100];
int b[100];
cout<<"分别输入两个数组,每个数组都是从小到大的排列顺序!"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<m;j++)
cin>>b[j];
merge(a,b,n,m);
return 0;
}
#include<iostream>
using namespace std;
void merge(int a[],int b[],int n,int m)
{
int i=0,j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])
{
cout<<"两个数组中重复的数字其中一个是:"<<a[i]<<endl;
i++;
j++;
}
else if(a[i]>b[j])
{
j++;
}
else i++;
}
}
int main()
{
cout<<"分别输入两个数组的输入数字的个数(<100)"<<endl;
int n,m;
cin>>n>>m;
int a[100];
int b[100];
cout<<"分别输入两个数组,每个数组都是从小到大的排列顺序!"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<m;j++)
cin>>b[j];
merge(a,b,n,m);
return 0;
}
相关文章推荐
- 【Java】实现浮点数组的并集以及整型数组的交集和两个字符串数组的逆序排序
- [原]关于对求两个排序数组交集的扫描算法正确性的证明
- 算法兴趣-----求两个已排序数组的交集和并集(算法复杂度O(N+M))
- 计算两个有序整型数组的交集
- 最快速度求两个数组之交集算法(58同城二面笔试题)
- 面试算法:lg(k)时间查找两个排序数组合并后第k小的元素
- 【算法题】找出一个整型数组里两个不同数字
- 每天一道算法题8 在排序数组中查找和为给定值的两个数字
- 原创:搜索算法之两个数组取交集的算法
- 两个数组取交集算法的一些想法
- 【华为面试题】求两个整型数组的异集,即A+B-(A与B的交集)
- [算法学习]给定一个整型数组,找出两个整数为指定整数的和(2)
- [算法] 两个有序数组求交集
- 每天一个小算法(1)----合并两个已经排序的数组
- 每天一道算法题8 在排序数组中查找和为给定值的两个数字
- 求两个排序数组的交集
- 如何取两个已排序数组的交集?
- 程序员面试题精选100题(10)-排序数组中和为给定值的两个数字[算法]
- 对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。算法提示:将整数的各位数分解到一维整型数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。
- 整型数组处理算法(五)求两个有序数组的共同元素