我正在尝试编写一个函数来打印数字1到n的所有排列。我看到很多C ++代码可以做到这一点,但我不知道哪个有 最佳时间 。
只有拥有此功能的C ++代码并且运行时间最快,才能回答这个问题。
样本测试:
输入
3
输出:
123
132
213
231
312
321
请帮我生成这个功能(绝对是最快的运行时间)。
答案 0 :(得分:2)
您的输出包含带有n!
个数字的n
行,因此您无法获得比O(n*n!)
更高的复杂性。而最明显的强力算法就是用这种复杂性来实现的。所以,尽管你没有包含你看到的c ++代码,我敢打赌它会在O(n*n!)
时间运行,这是最佳的。
编辑:更正了,感谢评论。