全排列permutation
Posted walkinginthesun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列permutation相关的知识,希望对你有一定的参考价值。
参考:
算法思路:
(1)n个元素的全排列=(n-1个元素的全排列)+(另一个元素作为前缀);
(2)出口:如果只有一个元素的全排列,则说明已经排完,则输出数组;
(3)不断将每个元素放作第一个元素,然后将这个元素作为前缀,并将其余元素继续全排列,等到出口,出口出去后还需要还原数组;
使用STL的std::next_permutation函数
void PermutationTest()
{
string s = "abc";
cout << s << endl;
while (std::next_permutation(s.begin(), s.end())){
cout << s << endl;
}
}
以上是关于全排列permutation的主要内容,如果未能解决你的问题,请参考以下文章
[Leetcode 46]全排列 Permutations 递归
全排列permute,python回溯实现全排列,permute backtracking