排列(组合)算法的实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
/// <summary> /// 递归算法求排列 /// </summary> /// <typeparam name="T">泛型类型</typeparam> /// <param name="array"></param> /// <param name="startIndex"></param> /// <param name="endIndex"></param> public
static void GetPermutation<T>(T[] array, int
startIndex, int
endIndex) { if
(startIndex == endIndex) { StringBuilder temp = new
StringBuilder(); foreach
( var
item in
array) { temp.Append(item.ToString()); } Console.WriteLine(temp.ToString()); } else { for
( int
i = startIndex; i <= endIndex; i++) { Swap( ref
array[startIndex], ref
array[i]); GetPermutation<T>(array, startIndex + 1, endIndex); Swap( ref
array[i], ref
array[startIndex]); } } } |
refer:
http://www.cnblogs.com/snowdust/archive/2010/01/20/1652161.html
http://blog.csdn.net/lcl_data/article/details/5286847
http://yuyangc0008.blog.163.com/blog/static/54754220138492632191/
好文章:
http://www.cnblogs.com/Dah/archive/2007/04/14/572183.html
原文:http://www.cnblogs.com/Jessy/p/3559354.html