0
我必須從數據文件中找到set union的基數並設置兩個集合的交集。我創建了兩個數組(setA []和setB [])來存儲我的數據。 a和b分別是集合A和集合B中的元素數量。 setIntersection應該保持集合A和B之間的交集結果。但是我被困在如何找到並集和交集。C++設置交集和使用數組的聯合
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我只允許使用數組和簡單的代碼算法。提前致謝!
數組是排序的嗎? – brokenfoot
假設setA和setB的數組是排序的,那麼你的代碼看起來沒問題。當然可能是你沒有發佈的代碼被破壞了。 –
不,這些集合沒有排序。我從文件中提取數據並直接放入數組。 –