<分区>
我正在尝试编写一个函数来打印数字 1 到 n 的所有排列。我看到很多 C++ 代码来执行此操作,但我不知道哪个具有最佳时间。
请仅当您拥有运行时间最快的此函数的 C++ 代码时才回答此问题。
示例测试:
input:
3
output:
123
132
213
231
312
321
请帮我生成这个函数(绝对是最快的运行时间)。
<分区>
我正在尝试编写一个函数来打印数字 1 到 n 的所有排列。我看到很多 C++ 代码来执行此操作,但我不知道哪个具有最佳时间。
请仅当您拥有运行时间最快的此函数的 C++ 代码时才回答此问题。
示例测试:
input:
3
output:
123
132
213
231
312
321
请帮我生成这个函数(绝对是最快的运行时间)。
最佳答案
您的输出包含 n!
行和 n
个数字,因此您无法获得比 O(n*n!)
更好的复杂度。最明显的蛮力算法就是以这种复杂性来完成的。因此,尽管您没有包含您看到的 c++ 代码,但我敢打赌它会在 O(n*n!)
时间内运行,这是最佳的。
编辑:更正,感谢评论。
关于algorithm - 打印所有排列的最快运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22421561/