使用什么抽象数据类型 (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/