我有一张单子,上面写着:
List={"word1", "word2", "word3", ....}
如何生成“两个字长度”列表
所有这些词的独特组合?
例如,如果上面的列表只包含三个
然后输出可能如下:
word1 word2
word1 word3
word2 word1
word2 word4
word3 word1
word3 word2
另外,请注意
"word1 word2"
不是与
"word2 word1"
相同。我知道这样一个最简单的解决方案:
for i=1 to N
for j=1 to N
if(i!=j) then
print List[i]+" "+List[j]
但这有O(N2)的复杂性。那么,什么是
最小最坏情况下的最优算法
实现复杂度相同。
最佳答案
算法的输出包含O(n^2)
元素由于每一个输出元素都需要关注,所以不能期望实现比O(n^2)
时间复杂度更好的效果。
关于algorithm - 如何生成单词列表的所有唯一组合?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6623143/