主题:一个急手的问题
请高手帮忙呀[em10]
生成n个对象的n!个排列
问题描述:设有n个对象,可以用1,2,3,…,n表示之,则{1,2,3,…,n}有n!个排列。
算法的输入: n
算法的输出:{1,2,3,…,n}的n!个排列。
二、提示:
算法要点:借用结点标号(多元组)来标识排列,则一般来说,生成{1,2,3,…,n}的n!个排列可归结为:取{1,2,3,…,n-1}的一个已知排列,把它看成是线形表L,将n依次插入L中n个可能位置的每一个位置,即可得到{1,2,3,…,n}的n个不同排列。可以编写一递归过程实现上述想法。
生成n个对象的n!个排列
问题描述:设有n个对象,可以用1,2,3,…,n表示之,则{1,2,3,…,n}有n!个排列。
算法的输入: n
算法的输出:{1,2,3,…,n}的n!个排列。
二、提示:
算法要点:借用结点标号(多元组)来标识排列,则一般来说,生成{1,2,3,…,n}的n!个排列可归结为:取{1,2,3,…,n-1}的一个已知排列,把它看成是线形表L,将n依次插入L中n个可能位置的每一个位置,即可得到{1,2,3,…,n}的n个不同排列。可以编写一递归过程实现上述想法。