的順序如果我有一個未排序的大組n
整數(比如他們的2^20
),並希望與每個(其中k
很小,比如5
)在k
元件以產生子集增加他們的數量的順序,那麼最有效的方法是什麼?算法產生K個元件的子集在其總和
爲什麼我需要以這種方式生成這些子集是我想找到滿足一定條件的最小和的k元素子集,因此我會將條件應用於每個k元素子集生成。
此外,該算法的複雜性是什麼?
也有同樣的問題在這裏:Algorithm to get every possible subset of a list, in order of their product, without building and sorting the entire list (i.e Generators)關於他們的產品生成訂單的子集,但它不適合我的需要,由於非常大的尺寸設定的n
我打算實現算法Mathematica,但也可以用C++或Python來完成。
您是否想要生成** ALL **的子集k?這可能會掩蓋排序的影響,因爲對於k> = 2,O(n * log n)
user1952500
2013-02-28 01:26:06
條件是什麼?您應該在創建候選人時應用它 - 否則,這個問題對我來說聽起來像揹包一樣 - 至少對於無限k的一般情況而言。 – 2013-02-28 01:32:42
@ user1952500我不想生成** ALL **子集 - 我想在測試它們時進行測試。 – 2013-02-28 01:55:41