最快的运行时间来打印所有排列

时间:2014-03-15 08:41:00

标签: algorithm permutation

我正在尝试编写一个函数来打印数字1到n的所有排列。我看到很多C ++代码可以做到这一点,但我不知道哪个有 最佳时间

只有拥有此功能的C ++代码并且运行时间最快,才能回答这个问题。

样本测试:

  

输入

     

3

     

输出:

     

123

     

132

     

213

     

231

     

312

     

321

请帮我生成这个功能(绝对是最快的运行时间)。

1 个答案:

答案 0 :(得分:2)

您的输出包含带有n!个数字的n行,因此您无法获得比O(n*n!)更高的复杂性。而最明显的强力算法就是用这种复杂性来实现的。所以,尽管你没有包含你看到的c ++代码,我敢打赌它会在O(n*n!)时间运行,这是最佳的。

编辑:更正了,感谢评论。