Heap 的算法是一种系统的方法,可以循环遍历 N 个元素的所有排列“一次交换一次”。对于奇数 N,它特别简洁,因为最终排列似乎只是与第一个排列不同的一次交换。
但是,即使是 N,这种环绕也不会发生。例如,对于 N=4,排列顺序为:
1234
2134
3124
1324
2314
3214
4213
2413
1423
4123
2143
1243
1342
3142
4132
1432
3412
4312
4321
3421
2431
4231
3241
2341
那么,有没有人有一个交换算法可以环绕 N 呢?如果不是,那么仅 N=4 怎么样?