设计递归算法生成n个元素的所有排列对象。例如n等3时所有排列对象1 231 3221323 132 1312共6个全排列。要求补充函数generatePermutationsn;main函数如下int main int n;lcout 输入n的值 ;cin n;int permutationCount = generatePermutationsn; cout 全排列的个数;cout permu
}
解法:递归思路
对于n个元素的全排列,可以看做是先选取第一个元素,然后对剩下的n-1个元素进行全排列,将第一个元素插入到各个位置上,得到所有的n个元素的全排列。
因此,可以采用递归方法,每次选取一个元素作为第一个元素,对剩下的元素进行全排列,然后将第一个元素插入到各个位置上,得到所有的n个元素的全排列。
代码实现如下:
void generatePermutationsHelper(vector
int generatePermutations(int n) {
vector
在主函数中调用该函数即可计算出n个元素的全排列个数
原文地址: https://www.cveoy.top/t/topic/hjCt 著作权归作者所有。请勿转载和采集!