我有一张单子,上面写着:

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/

10-11 03:24