1
從我的問題聯盟,相交,爲O差異大INTSET(M + N)次
Insert element to ArrayList with ascending order and no duplicate elements
我做我的插入方法。
現在我試着找出如何構建聯合,相交和差分方法來操作2個IntSet。
請注意,IntSet的數字元素很大,我需要在O(m + n)時間內完成,其中m和n是這兩個IntSet的元素數。
例如IntSets
a = new IntSetExtra();
b = new IntSetExtra();
for(int i=0; i<300; i++){ a.insert(2*i); }
for(int i=0; i<300; i++){ a.insert(i); }
for(int i=20000; i<50000; i++){ b.insert(i); }
我該怎麼辦呢?
P.S.它可以使用mergesort?
編輯:
這裏是我的組織機構代碼
public IntSetExtra union(IntSetExtra a){
//effect: return new IntSet that union between this and a;
IntSetExtra intSet = new IntSetExtra();
intSet.addAll(a);
for(int i=0; i<a.size(); i++){
if(!intSet.contains(a.get(i))){
intSet.insert(a.get(i));
}
}
return intSet;
}
你真的應該努力一些這些了自己,回到我們與您已經嘗試過的東西,有/沒有工作。 – jjnguy 2010-08-30 15:41:43