软考程序员算法实例:全排列的递归算法

来源:育路教育网发布时间:2012-03-27

  using System;

  namespace TotalSort

  {

  /**////

  /// 全排列的递归算法

  ///

  class Class1

  {

  /**////

  /// 应用程序的主入口点。

  ///

  [STAThread]

  static void Main(string[] args)

  {

  //char[] s = "abcdefghijklmnopqrstuvwxyz".ToCharArray();

  char[] s = "abcde".ToCharArray();

  TotalSort(s, 0);

  Console.WriteLine("\n\n总数:{0}", resultCount);

  Console.ReadLine();

  }

  static int resultCount = 0;

  public static void TotalSort(char[] list, int start) {

  int end = list.Length - 1;

  if (start == end) {

  resultCount++;

  Console.WriteLine(list);

  }

  else {

  for (int i = start; i <= end; i++) {

  char[] temp = new char[list.Length];

  list.CopyTo(temp, 0);

  char tempc = temp[start];

  temp[start] = temp[i];

  temp[i] = tempc;

  TotalSort(temp, start + 1);

  }

  }

  }

  }

  }

纠错

育路版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:育路网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为育路网发布的内容可能涉嫌侵犯其合法权益,应该及时向育路网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,育路网在收到上述法律文件后,将会尽快移除被控侵权内容。