直接来看代码,来体会递归~ 事实上,这个代码是最最让我体会到递归之美的~ 好美啊~好妙啊~ ...
分类:
其他好文 时间:
2018-02-27 23:19:41
阅读次数:
143
Description 汉诺塔升级了:现在我们有 $N$ 个圆盘和 $N$ 个柱子,每个圆盘大小都不一样,大的圆盘不能放在小的圆盘上面,$N$ 个柱子从左到右排成一排。每次你可以将一个柱子上的最上面的圆盘移动到右边或左边的柱子上(如果移动之后是合法的话)。先在告述你初始时的状态,你希望用最少的步数将 ...
分类:
其他好文 时间:
2018-02-25 17:17:35
阅读次数:
155
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1995 解题思路:求第k号盘子至少需要移动的次数,实际上是求n-k(认作是前g-1个盘子移动的总次数)个盘子(还欠一个)至少需要移动的次数再加上第(n-k+1)(认作是第g个盘子)个盘子移动一次即为移动的 ...
分类:
其他好文 时间:
2018-02-24 23:11:33
阅读次数:
201
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1996 解题思路:每个盘子有3种选择,故系列总数为3^n。(水题!!!) AC代码: ...
分类:
其他好文 时间:
2018-02-24 23:06:42
阅读次数:
196
Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成。一开始n个盘子都摞在柱子A上, 大的在下面,小的在上面,形成了一个塔状的锥形体。 对汉诺塔的一次合法的操作是指:从一根柱子的最上层拿一个盘子放到另一根柱子的最上层,同时要保证被移 动的盘子一定放在比它更 ...
分类:
其他好文 时间:
2018-02-24 10:39:58
阅读次数:
101
7-17 汉诺塔的非递归实现(25 分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。 输入格式: 输入为一个正整数N,即起始柱上的盘数。 输出格 ...
分类:
其他好文 时间:
2018-02-18 23:40:03
阅读次数:
399
问题描述 汉诺塔问题是由汉多放置在三个塔座上的盘子组成的一个古老的难题,如图1所示。 所有盘子的直径是不同的,并且盘子中央都有一个洞以使它们刚好可以放到塔座上。所有的盘子刚开始都放在塔座A上。这个难题的目标是将所有的盘子都从塔座A移动到塔座C上。每一次只可以移动一个盘子,并且任何一个盘子都不可以放在 ...
分类:
其他好文 时间:
2018-02-07 11:55:51
阅读次数:
127
递归的定义:一个函数自己直接或间接调用自己(一个函数调用另外一个函数和他调用自己是一模一样的,都是那三步,只不过在人看来有点诡异。)递归满足的三个条件:1、递归必须得有一个明确的终止条件2、该函数处理的数据规模必须在递减3、这个转化必须是可解的。循环和递归:理论上循环能解决的,肯定可以转化为递归,但... ...
分类:
其他好文 时间:
2018-02-06 20:36:00
阅读次数:
161
一、时间复杂度 用来评估算法运行效率的一个东西 O(1) O(n) O(n2) O(n*3) 递归 递归的两个特点: 调用自身 结束条件 练习: 递归实例:汉诺塔问题 列表查找 列表查找: 从列表中查找指定元素 输入:列表、待查找元素 输出:元素下标或未查找到元素 顺序查找 从列表第一个元素开始,顺 ...
分类:
编程语言 时间:
2018-02-03 23:15:45
阅读次数:
276
算法的简单概念: 什么是算法: 时间复杂度: 小结: 空间复杂度: 递归复习: 递归实例(汉诺塔问题): 列表查找: 递归二分查找: 列表排序: ...
分类:
编程语言 时间:
2018-02-01 17:47:24
阅读次数:
146