的共同要素的假設有幾個數組:一個發現設置組陣列
A. [1,2,3,4,5,6,7,8,9,10]
B. [2,4,6,8,10]
C. [1,4,7,10]
D. [1,3,5,7,9]
.
.
我需要找出元素的所有可能集(1,2,3,4,5 ...)各
(2,4,6,8,10) -> (A,B)
(1,4,7,10) -> (A,C)
(1,3,5,7,9) -> (A,D)
(4,10) -> (A,B,C)
(1,7) -> (A,C,D)
實際輸入是包含字符串的文件:其中在-至少2門陣列(A,B,C ....),並將其顯示在下面的方式是常見的。可能有數千個文件,每個文件可能包含超過一百個密鑰字符串。
我試過以下方法: 首先我通過比較所有可能的數組對來生成元素集。然後我嘗試使用邏輯來生成其他集合 - 元素集合的交集在數組集合中很常見。就像這樣:
(2,4,6,8,10) -> (A,B)
(1,4,7,10) -> (A,C)
從上面我們可以得到:
intersect((2,4,6,8,10),(1,4,7,10)) -> union((A,B),(A,C))
or, (4,10) -> (A,B,C)
是否有其他辦法,我可以嘗試提高時間和內存的複雜性 - 考慮包含數百個各元素的千元輸入文件?