2012年10月9日

摘要: Hanoi问题:设a,b,c 是三个塔座,在a上一共堆叠这n个圆盘,这些圆盘由大到小叠在一起,现在要求将塔座a上的圆盘全部移动到b上去,移动时须遵守以下规则:1.每次只能移动一个圆盘;2.任何情况,都不允许较大的盘子压在较小的盘子之上;3.在满足1,2的情况下,可将圆盘移至a,b,c任意一个塔座上.算法简介:当塔上圆盘个数n>1时,需要利用c作为辅助塔。可将n-1个圆盘依照移动规则从塔a移动至塔c,然后将剩下的最大的圆盘移动至塔b,再将n-1个圆盘从塔c移动至塔b即可。依照以上思想,n个圆盘的问题可以分解为两个n-1个圆盘的同样问题来解决。一下是输出移动步奏的代码..#include < 阅读全文
posted @ 2012-10-09 13:52 procrustes 阅读(226) 评论(0) 推荐(0)

2012年9月28日

摘要: 尝试编写算法经典问题,快速排序..算法简介:基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码..#include <iostream>#include <stdlib.h>#include <ctime>#define ARRAYSIZE 12using namespace std;void quicksort(int a[],int m,int n);int partition(int a[ 阅读全文
posted @ 2012-09-28 11:32 procrustes 阅读(190) 评论(0) 推荐(0)

2012年9月27日

摘要: 尝试编写算法经典问题,全排列..目的只在练手算法简介:设 A是对集合S的求其全排列序列的运算(例A{a}={a},A{a,b}={ab,ba}...),则A对集合的运算可展开成如下递归式:A{a1,a2,...,an}={{a1}A{a2,a3,...,an}+{a2}A{a1,a3,...,an}+...+{an}A{a1,a2,...,an-1}}以包含五个元素的集合{a1,a2,a3,a4,a5}为例:A{a1,a2,a3,a4,a5}= {{a1}A{a2,a3,a4,a5}+{a2}A{a1,a3,a4,a5}+{a3}A{a1,a2,a4,a5}+{a4}A{a1,a2,a3,a5 阅读全文
posted @ 2012-09-27 17:21 procrustes 阅读(889) 评论(0) 推荐(0)

导航