大家帮我看看求并集的算法有哪些问题?

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:30:50
#include <iostream>
using namespace std;
int seqsearch(double c[],int Na,double elem)
{for(int i=0;i<Na;i++)
{if(c[i]==elem) {return 1;}
else {return 0;}
}
}
int main(void)
{const M=100,N=200;
int Na=0,Nb=0,Nc;
double a[M],b[M],c[N],elem;
cout<<"请输入A中元素:";
for(int i=0;i<M;i++)
{cin>>a[i];
Na++;
if(a[i]==0)break;
}
cout<<"请输入B中元素:";
for(int j=0;j<M;j++)
{cin>>b[j];
Nb++;
if(b[j]==0) break;
}
for(int k=0;k<N;k++) c[k]=a[k];
cout<<"C中元素有:";
for(int m=0;m<Na-1;m++) cout<<c[m]<<" ";
for(int h=0;h<Nb-1;h++)
{elem=b[h];
seqsearch(a,Na,elem);
{if(seqsearch(a,Na,elem)==0)
cout<<elem<<" ";
}
}
return 0;
}
我上面编一个函数查找,不过查找的函数貌视没实现他的功能,帮我看看问题出在哪里?

首先,并查集是森林,体现离散里等价关系与等价类的思想。结点只需存储数据域与双亲,通过判断两个元素是否是同一个根,即是一棵树上,或说在同一个等价类类判断是否所属一个集合。你用的是顺序查找,算法思想错了。优化查找可以压缩路径。
你可以上www.oibh.org,那里的文章比较专业。