c语言中有没有比较简单的算法来判断两个集合有交集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中有没有比较简单的算法来判断两个集合有交集相关的知识,希望对你有一定的参考价值。
c语言中有没有比较简单的算法来判断两个集合有交集
比如数组a和数组b
计算机要重复几百次
效率要高
急用!!
如果要求2个数组相交的元素的话自己写一个代码也可以,或者可以直接使用STL算法中的set_intersection函数。 参考技术A 几年没用过C了,语法记不得了。
不知道能不能把数组转换成字符型,再用比较字符串是否有相同部分的函数进行比较呢。
估计不行,呵呵
C++求两个集合的交集
#include<iostream.h>
void main()
int a[5],b[5],c[5];
int i,j,k;
int *p1,*p2,*p3;
cout<<"请输入数组a:";
for(i=0;i<5;i++)
cin>>a[i];
cout<<"请输入数组b:";
for(j=0;j<5;j++)
cin>>b[j];
p1=&a[i];p2=&b[j];p3=&c[0];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(*p1==*p2++)
*p3++=*p1;
cout<<"a数组为:";
for(i=0;i<5;i++)
cout<<a[i]<<' ';
cout<<endl;
cout<<"b数组为:";
for(j=0;j<5;j++)
cout<<b[j]<<' ';
cout<<endl;
cout<<"c数组为:";
for(k=0;k<5;k++)
cout<<c[k]<<' ';
cout<<endl;
就是要将a,b都赋值给c,用指针。。。
#include<iostream.h>
void main()
int a[5],b[5],c[5]=0;//n是用来统计相同的元素总共多少个
int i,j,k,n=0;
int *p1,*p2,*p3;
cout<<"请输入数组a:";
for(i=0;i<5;i++)
cin>>a[i];
cout<<"请输入数组b:";
for(j=0;j<5;j++)
cin>>b[j];
p1=&a[0];p3=&c[0];
for(i=0;i<5;i++)
p2=&b[0];
for(j=0;j<5;j++)
if(*p1==*p2++)
*p3++=*p1;
n++;
p1++;
cout<<"a数组为:";
for(i=0;i<5;i++)
cout<<a[i]<<' ';
cout<<endl;
cout<<"b数组为:";
for(j=0;j<5;j++)
cout<<b[j]<<' ';
cout<<endl;
cout<<"c数组为:";
for(k=0;k<n;k++)
cout<<c[k]<<' ';
cout<<endl;
参考技术A #include<stdio.h>
void main()
int a[5],b[5],c[5]=0;
int i,j,k,n=0;
int *p1,*p2,*p3;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(j=0;j<5;j++)
scanf("%d",&b[j]);
p1=&a[0];p3=&c[0];
for(i=0;i<5;i++)
p2=&b[0];
for(j=0;j<5;j++)
if(*p1==*p2++)
*p3++=*p1;
n++;
p1++;
for(i=0;i<5;i++)
printf("%d ",a[i]);
printf("\n");
for(j=0;j<5;j++)
printf("%d ",b[j]);
printf("\n");
for(k=0;k<n;k++)
printf("%d ",c[k]);
printf("\n");
参考技术B #include<stdio.h>
void main()
int a[5],b[5],c[5]=0;
int i,j,k,n=0;
int *p1,*p2,*p3;
printf("请输入数组a:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入数组b:");
for(j=0;j<5;j++)
scanf("%d",&b[j]);
p1=&a[0];p3=&c[0];
for(i=0;i<5;i++)
p2=&b[0];
for(j=0;j<5;j++)
if(*p1==*p2++)
*p3++=*p1;
n++;
p1++;
for(i=0;i<5;i++)
printf("%d ",a[i]);
printf("\n");
for(j=0;j<5;j++)
printf("%d ",b[j]);
printf("\n");
for(k=0;k<n;k++)
printf("%d ",c[k]);
printf("\n");
以上是关于c语言中有没有比较简单的算法来判断两个集合有交集的主要内容,如果未能解决你的问题,请参考以下文章