整理自csdn上的一个帖子.
1,3,5,6,7,9
2,4,6,7,8,9
如何能够最快的取出交集.
思路:因为是排好序了,可以同时搜索.此法还是用了循环逐个比较,所以不一定是最快的.
程序:
#include <stdio.h>
void main()
{
int a[] = {1,3,5,6,7,9};
int b[] = {2,4,6,7,8,9};
int c[6]={0};
int s=0,n=0;
for (int i=0, j=0; i<sizeof(a)/sizeof(a[0]) && j<sizeof(b)/sizeof(b[0]); )
{
if (a[i]==b[j])
{
c[n++]=a[i];
s++;
i++;
j++;
}
else if (a[i] > b[j])
{
j++;
}
else
{
i++;
}
}
if (s==0)
{
printf("no intersection");
}
else
{
for (int k=0;k<s;k++)
{
printf("%d ",c[k]);
}
}
}