1

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

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

4

3 回答 3

0

词典排列算法通常不是递归的。此页面具有 ac# 变体,可以快速获得第 N 个排列

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

于 2012-10-06T15:35:26.343 回答
0

codeproject.com 上有一个很好的项目,关于有或没有重复的排列和变化。我猜你需要不重复的排列

于 2012-10-07T11:30:00.013 回答
0

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

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

public string GetPermutation(int n, string source)
        {

            for (int i = 0; i < n; i++)
            {
                //modify source
            }
            return source;
        }
于 2012-10-06T12:06:40.053 回答