【发布时间】:2020-02-09 20:21:08
【问题描述】:
我在一组中有 10,000 件物品,每件都必须制成三合会。 我需要一种算法来有效地找到每个三元组。
例如:
{A,B,C,D,...}
1.AAA 2.AAB 3.AAC 4.AAD ...
一直到ZZY,ZZZ。
我使用的方法效率很低,我创建了一个 3 的嵌套 forloop,它遍历一个数组,它的运行时间为 O(N^3),性能很糟糕。哪种算法和数据结构对此会更好?谢谢
【问题讨论】:
-
请出示您的代码(即使效率低下)。
-
产生了多少三和弦?
-
这是最有效的方法。可能的排列数量为
n^k,在您的情况下为 10000^3 = 10^12,您需要为每个排列至少插入一次
标签: java algorithm permutation