【发布时间】:2014-03-27 22:07:35
【问题描述】:
我必须从数据文件中找到集合并集和集合交集的基数。我创建了两个数组(setA[] 和 setB[])来存储我的数据。 a 和 b 分别是集合 A 和集合 B 中的元素个数。 setIntersection 应该保存集合 A 和 B 之间的交集结果。但我被困在如何找到并集和交集。
int printIntersection(int setA[], int setB[], int setIntersection[], int a, int b, int k)
{
int i = 0;
int j = 0;
while(i < a && j < b)
{
if(setA[i] < setB[j])
{
i++;
}
else if(setA[i] > setB[j])
{
j++;
}
else if (setA[i] == setB[j])
{
setIntersection[k] = setA[i];
i++;
j++;
k++;
}
cout<<"Cardinality of intersection is "<<k<<endl;
}
此代码用于交叉路口,但我什么也没得到。我不知道从哪里开始工会。谁能帮我写代码谢谢! P.S 我只允许使用数组和简单的代码算法。提前致谢!
【问题讨论】:
-
数组排序了吗?
-
假设 setA 和 setB 的数组已排序,那么您的代码看起来没问题。当然可能是您尚未发布的代码已损坏。
-
不,集合没有排序。我正在从文件中获取数据并直接放入数组中。
-
谢谢大家。排序数组后代码工作!
标签: c++ arrays cardinality