arrays - 包含整数的数组的排列变体

标签 arrays algorithm data-structures permutation

给定一个整数数组,编写一个程序来打印数组中数字的所有排列。输出应按非递增顺序排序。

例如对于数组{12, 4, 66, 8, 9},输出应该是:

9866412
9866124
9846612
....
....
1246689

我想同时生成所有排列,将它们插入到 BST 中,然后对 BST 执行反向排序。 这似乎非常低效,因为我正在存储排列,我们可以做得更好吗?

最佳答案

C++ 标准库:

矢量 arr = .. 排序(arr.begin(),arr.end())

{
//在这里处理你的数据
}while(next_permutation(arr.begin(),arr.end());

这在 O(2^n) 中为您做您想做的事。在内部,它通过有效的方式交换来实现。如果您需要进一步的帮助,请告诉我

关于arrays - 包含整数的数组的排列变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14425504/

相关文章:

javascript - 检查对象内哪个数组的长度最大

javascript - 在javascript中使用多个循环检查多个条件

python - 将 numpy 数组传递给 C++

algorithm - 如果 m<n,O(n+m) 和 O(n) 符号是否等效?

java - JAVA搜索引擎的数据结构?

python - 从python中的多值元素数组打印特定值

php - 从 mysql php 制作多级数组

algorithm - 如何计算由 m 个对象组成的最大组合,每个对象都有 n 个备选方案?

algorithm - 如何查找从现在开始到特定工作日的最近的将来日期?

algorithm - 动态规划 m*n 网格最短路径