我想用c#编写一个方法,即计算字符数组的第n个排列,并返回第n个排列的字符数组,而不使用递归函数。
例如
If the array is ABC the second permutation is ACB
。任何人都可以帮助我
答案 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,有或没有重复。我想你需要排列而不重复。