中部培训网 > 培训新闻 > 电脑 > 软件开发 > > 软件工程师 - 正文

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

2012-03-27 17:12:12

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(" 总数:{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);

}

}

}

}

}

相关新闻