汉诺塔递归与非递归算法
摘要:问题描述:在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片,一次只移动一片,不管在哪根针上,小片必在大片上面。当所有的金片都从梵天穿好的那根针上移到另外一概针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。不管这个传说的可信度有多大,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序。这需要多少次移动呢?这里需要递归的方法。假设有n片,移动最少
阅读全文
posted @
2012-12-24 18:29
雇佣兵333
阅读(4939)
推荐(0)
最大间隙问题
摘要:问题描述: 最大间隙问题:给定n 个实数x1 , x2 , , xn,求这n 个数在实轴上相邻2 个数之间的最大差值。假设对任何实数的下取整函数耗时O(1),设计解最大间隙问题的线性时间算法。编程任务: 对于给定的n 个实数 x1 , x2, ……, xn,编程计算它们的最大间隙。数据样例: 输入数据: 5 2.3 3.1 7.5 1.5 6.3 输出数据: 3.2算法思想分析: 对于给定的n 个实数先取得其最大值和最小值,n个数的大小范围为[min,max];剩余n-2个点等分区间[min,max]产生n-1个闭区间的桶,如果我们假设每个桶的区间为[,)所以要增加一个桶放max...
阅读全文
posted @
2012-12-20 18:53
雇佣兵333
阅读(1598)
推荐(0)
字典序问题
摘要:在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A由26个小写英文字母组成,即A={a,b...z}.该字母表产生的长序字符串是指定字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次.例如,a,b,ab,bc,xyz,等字符串是升序字符串.现在对字母表A产生的所有长度不超过6的升序字符串按照字典排列编码如下:1 2 …… 26 27 28 ……a b …… z ab ac …… 对于任意长度不超过6的升序字符串,迅速计算出它在上述字典中的编码。上面公式可以这么理解:因为升序字符串,所以右边位上...
阅读全文
posted @
2012-12-13 15:20
雇佣兵333
阅读(558)
推荐(0)
统计数字问题
摘要:问题描述: 一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。 编程任务: 给定表示书的总页码的10 进制整数n (1≤n) 。编程计算书的全部页码中分别用到多少次数字0,1,2,…,9。 分析与解答: 由0,1,2……9组成的所有的n位数,从n个0到n个9共有10^n个n位数,其中全排列的情况下,每个数字使用的次数一样,设为f(n). 0 0 0 0 ...... 00 0 0 0
阅读全文
posted @
2012-12-13 14:48
雇佣兵333
阅读(648)
推荐(1)