摘要: 很早就有去做做的想法,可是一直没动手今天花了点时间搞搞结果如下:核心部分代码 1 public List<Result> GetResults(int[] arr) 2 { 3 //输入有效性检测 4 if (arr.Length==0) 5 throw new NotEnoughInputException(); 6 7 List<Result> rlist = new List<Result>(); 8 9 //... 阅读全文
posted @ 2011-12-31 09:18 ×jokey 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。本实例是用回溯法输出n个自然数中以r个数全排列。代码如下: 1 public void Arrange(int n, int r) 2 int i = 0, j; 3 string s; 4 int[] a = new int[n]; 5 a = 1; 6 while (true) 7 { 8 if ((a - i) <= (n - r + 1)) 9 ... 阅读全文
posted @ 2011-12-31 09:13 ×jokey 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 全排列,比如字母ABC,所有排列有A ,AB,AC,ABC,ACB,B,BA,BC,BAC,BCA,C,CA,CB,CAB,CBA.//原理是插入, 在一个字符串的所有位置插入新字符.//如: AB 插入C , 位置有 1A2B3, 插入后形成 CAB ACB ABC 1 char *AllList(char *str, int *pNum) 2 { 3 int i, j, k, n; 4 int len = strlen(str); 5 int Total = 0; 6 int count, oldcount; 7 int size; 8 ch... 阅读全文
posted @ 2011-12-31 09:12 ×jokey 阅读(675) 评论(0) 推荐(0) 编辑