全排列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的主要内容,如果未能解决你的问题,请参考以下文章

全排列 next_permutation() 函数的用法

全排列Permutations

[Leetcode 46]全排列 Permutations 递归

全排列permute,python回溯实现全排列,permute backtracking

LeetCode 31 Next Permutation(下一个全排列)

LeetCode 46. 全排列(Permutations)