使用c#计算字符数组的第n个排列

时间:2012-10-06 11:40:53

标签: c# permutation

我想用c#编写一个方法,即计算字符数组的第n个排列,并返回第n个排列的字符数组,而不使用递归函数。
例如

If the array is ABC the second permutation is ACB。任何人都可以帮助我

3 个答案:

答案 0 :(得分:0)

不清楚你的排列逻辑是什么,以提供非递归算法的帮助。

如果你想避免递归函数,我们用一个循环来运行处理逻辑N次。

public string GetPermutation(int n, string source)
        {

            for (int i = 0; i < n; i++)
            {
                //modify source
            }
            return source;
        }

答案 1 :(得分:0)

词典排列算法通常不是递归的。这个页面有一个c#变体,可以快速进入第N个排列

http://www.mathblog.dk/project-euler-24-millionth-lexicographic-permutation/

答案 2 :(得分:0)

关于排列和变化有good project on codeproject.com,有或没有重复。我想你需要排列而不重复