在数学与计算机科学中,递归是指在函数的定义中使用函数自身的方法。 递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。递归算法解决问题的特点:(1) 递归就是在过程或函数里调用自身。(2) 在使用递归...
分类:
编程语言 时间:
2015-03-18 15:38:18
阅读次数:
228
problem:
There are two sorted arrays A and B of size m and n respectively.
Find the median of the two sorted arrays.
The overall run time complexity should be O(log (m+n)).
thinking:
(1)求中位数,就是求已...
分类:
其他好文 时间:
2015-03-16 21:26:18
阅读次数:
162
#include
using namespace std;
int minStep,n,*arr,*record,*lis,index,recordMax,lisCount;
/*
1.minStep :存放"只"遍历一次指定数组,得到的LIS的长度.比如:
*arr={4,5,1,2,3}; 遍历该数组过后,minStep=2,即为{4,5}
两个元素的长度.具体请看getMinSt...
分类:
编程语言 时间:
2015-03-16 12:58:06
阅读次数:
150
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
//例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
#include
int fuc(int x)
{
if(x!=0)
return x%10+(fuc(x/10));
return 0;
}
int main()
{
printf("%d\n",fuc(2138...
分类:
编程语言 时间:
2015-03-14 16:59:33
阅读次数:
192
递归与非递归转换的基础知识是能够正确理解三种树的遍历方法:前序,中序和后序,第一篇就是关于这三种遍历方法的递归和非递归算法。如何用栈实现递归与非递归的转换(一)三种遍历树的算法一.为什么要学习递归与非递归的转换的实现方法?1)并不是每一门语言都支持递归的.2)有助于理解递归的本质.3)有助于理解栈,...
分类:
其他好文 时间:
2015-03-13 12:27:37
阅读次数:
133
这里对这个DP问题做了代码实现,分为递归算法(自顶向下)和非递归算法(自下向上),以及拓展的自下向上算法的实现。递归算法: 1 #include 2 3 using namespace std; 4 5 int size = 10; 6 7 inline int max(int a, int ...
分类:
编程语言 时间:
2015-03-11 23:00:20
阅读次数:
277
http://blog.csdn.net/wangjinyu501/article/details/8248492 原版一、基本概念 递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题...
分类:
编程语言 时间:
2015-03-11 12:24:31
阅读次数:
239
斐波那契数列,学过数学的都知道,就是1 1 2 3 5 8 13 21 34 。。。
即每一项都是前两项的和。
算法本身很简单,关键的是理解递归这种思想。...
分类:
编程语言 时间:
2015-03-10 21:30:57
阅读次数:
156
汉诺塔的问题,也是一个经典的递归算法问题。
下面是自己总结的一张整体流程图。。。...
分类:
编程语言 时间:
2015-03-10 21:29:03
阅读次数:
233
汉诺塔原理解析:
当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。
当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的小盘子移动到C塔上。
当A塔上有3个盘子时,先将A塔上编号1至2的盘子(共2个)移动到B塔上(需借助C塔),然后将A塔上的3号...
分类:
编程语言 时间:
2015-03-06 09:46:53
阅读次数:
186