斐波那契数列:0、1、1、2、3、5、8、13………… 他的规律是,第一项是0,第二项是1,第三项开始(含第三项)等于前两项之和。 > 递归实现 看到这个规则,第一个想起当然是递归算法去实现了,于是写了以下一段: 它能正常运行,比如计算第10项的结果为55。 但是,计算数字大点的数据,则很慢很慢,因 ...
分类:
编程语言 时间:
2016-05-29 00:58:58
阅读次数:
347
s11d27 算法 一、理论 1.1 时间复杂度和空间复杂度的理论: 1)空间复杂度: 是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了, 简单说就是递归集算时通常是反复调用同一个方法,递归n次,就需要n个空间。 2)时间复杂度 一个算法花费的时间与算法中语句的执行次 ...
分类:
编程语言 时间:
2016-05-17 13:04:33
阅读次数:
233
一、前序遍历 前序遍历简单来讲,遍历顺序是:根节点-左子树-右子树 1、递归遍历 2、迭代遍历(用栈实现) 二、中序遍历 遍历顺序是:左子树-根节点-右子树 1、递归遍历 2、迭代遍历(用栈实现) 三、后序遍历 遍历顺序:左子树-右子树-根节点 1、递归遍历 2、迭代遍历(用栈实现) 四、层序遍历 ...
分类:
其他好文 时间:
2016-04-27 22:34:47
阅读次数:
276
Tribonacci数列是斐波那挈数列的扩展 很有趣的,我们可以发现 这是Tribonacci数列的一些深入研究 下面是贴代码的时间了: 解法一(半产品) 这种方法就不解释了,不懂就去看看最笨的方法递归求解,而这是对递归求解的优化 import java.util.Scanner; public c ...
分类:
其他好文 时间:
2016-04-27 13:01:48
阅读次数:
366
//编写一个函数reverse_string(char*string)(递归实现)
//实现:将参数字符串中的字符反向排列。
//要求:不能使用C函数库中的字符串操作函数。
//第一种方法:递归法
#include<stdio.h>
intreverse_string(char*string)
{
if(*string!=‘\0‘)
{
string++;
reverse_str..
分类:
其他好文 时间:
2016-04-08 15:26:32
阅读次数:
129
那么从之前随机生产的数据得到较多量[骨牌存储箱]的数据。 我们将利用这部分数据进行演示关于地递归的利用技巧。 以下注释较多。如果不喜欢的话可以不看,并不影响对递归方法的理解。 递归代码: 递归代码: 1 /* 2 1、首先: 3 假设情形:现在要利用现有的骨牌进行多米诺骨牌游戏。 4 2、拍列: 5 ...
分类:
其他好文 时间:
2016-03-31 12:40:58
阅读次数:
120
在以前的博文中,写过类似的课题。使用的是下面这种方法。// 递归出口
template
void logOld(const T& t)
{
std::cout << t << '\n';
}// 递归展开
template
void logOld(const T& t, const Args& ......
分类:
其他好文 时间:
2016-03-20 10:29:30
阅读次数:
203
9.1 数字三角形 9.1.2 记忆化搜索与递推 方法1:递归计算。程序如下(需注意边界处理): int solve(int i,int j) { return a[i][j] + (i==n ?0:max(solve(i+1,j),solve(i+1,j+1)); } 用直接递归的方法计算状态转移
分类:
其他好文 时间:
2016-03-12 18:34:01
阅读次数:
178
选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。
分类:
编程语言 时间:
2016-01-26 12:17:38
阅读次数:
145