algorithm - 什么抽象数据类型 (ADT) 用于在 Python 中实现 steinhaus-johnson-trotter(排列)算法?

标签 algorithm python-2.7 permutation doubly-linked-list

使用什么抽象数据类型 (ADT) 来实现 steinhaus-johnson-trotter algorithm在 Python 中生成对象的排列?

我特别担心在数据的任何位置插入的复杂性成本:

1

12
21

123
132
312

llist 模块中的双向链表是个不错的选择?

最佳答案

序列中不需要插入新元素,每次只需要交换两个元素即可。这在阵列上很快。标准 Python 列表作为数组实现,请参阅 https://wiki.python.org/moin/TimeComplexity ,所以我认为这是用于此目的的最佳数据结构。

关于algorithm - 什么抽象数据类型 (ADT) 用于在 Python 中实现 steinhaus-johnson-trotter(排列)算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36360320/

相关文章:

algorithm - 什么算法可以让一个数字最接近一个可以均匀(在一定范围内)分成两个其他常数的常数?

python - 我想使用 Python 字符串格式化表达式将数字格式化为百分比,但它失败了

python - 如何在python中制作一个验证卡安全码的程序?

algorithm - 在置换方程中查找变量的值

algorithm - 如何找到网络节点之间距离最小的最佳网格布局?

python - 澄清此 Python 正则表达式和调试信息

string - 二元序列相加组合

用于查找 Arraylist 中所有可能的排列组合的 Java 递归过早退出

matlab - Matlab 中是否有内置函数来确定排列是偶数还是奇数?

algorithm - boolean 回归或类似算法