2012-10-06 53 views
1

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

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

+1

在第一次尝试自己和粘贴代码.. –

+0

这是我的代码递归: – user1725012

+0

类置换 { INT K = 0 i = 0; 私人无效掉(参见焦炭一个,参考字符B) { 炭温度; \t \t temp = b; \t \t \t \t \t \t b = a; \t \t \t \t \t \t a = temp; }私人无效去(CHAR []列表,INT位置,INT米)// m是阵列-1 { INT I的长度; 如果(K ==米) { 如果(I ==位置){ Console.Write(列表); Console.WriteLine(“”); } else i ++; (i = k; i <= m; i ++) } else go(list,k + 1,m); swap(ref list [k],ref list [i]); }} } 我 – user1725012

回答

0

不太清楚你的排列逻辑就是提供在非递归算法的帮助。

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

public string GetPermutation(int n, string source) 
     { 

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