问题描述:
假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3……N。设计一个程序,求出所有由此输出的长度为N的车厢序列。
算法综述:
上一篇博文实现了解决车厢问题的递归算法。本文试图对N个车厢的全排列进行筛选,选出可能的序列。
必须声明,产生全排列的算法也有两种:递归和非递归,本文使用的是递归产生全排列。全排列的非递归算法后面再说。。。
调度站的本质是一个栈,LIFO决定了输出序列必须满足:
若以编号0,1,2,3...n-1的顺序进行调度,在一个输出序列x0,x1,x2......x(n-1)中,对于每个xi,序列x(i+1)......x(n-1)中,编号小于xi的车厢必须是递减的。
对每一个序列从后往前检查&