递归调用函数为了描述问题得某一状态,得用到它的上一状态,而上一状态,又得用到它的上一状态,这种用自己来定义自己的方法,称为递归定义。递归结束条件,得有一个条件结束递归,不然会无穷递归。优点:简化算法。化繁为简,缺点:不节省存储空间,运行效率也不高。void m(int a){ if (a<0) {....
分类:
其他好文 时间:
2014-09-20 23:08:59
阅读次数:
231
int main(int argc, const char * argv[]) { f(1,1,1000); return 0;}void f(int a,int b,int n){ if (a<n) { printf("%d\n",a); a=a+b; f(b,a,n);...
分类:
其他好文 时间:
2014-09-19 21:07:06
阅读次数:
168
大意:告诉你n个矩阵的行数和列数比如说32 3 4 5代表有3个矩阵第一个矩阵2 * 3 第二个矩阵 3 * 4 第三个矩阵4 * 5 并且知道只有连续的矩阵才可以相乘问最后相乘的次数最少是多少分析:用区间dp可以做每次递归调用的时候枚举每个分割点最后加上附带的价值即可代码: 1 #include ...
分类:
其他好文 时间:
2014-09-19 21:06:26
阅读次数:
246
快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都小于或等于基准值, 基准右边的元素值 都大于基准值。然后以基准数为界,分左和右两个子序列,递归调用,直至完成排序。
分类:
其他好文 时间:
2014-09-19 17:03:05
阅读次数:
187
1. 在不确定某个参数或对象是否是数组的时候,就可以使用发射机制,把该对象的Class对象传给Array.isArray(Class) 方法进行判断。通过Class对象的 getComponentType() 方法可以进一步知道数组组件的具体类型,数组如果是多维的话可以递归调用Array.isArray;
2.Array.getLength(class)可以得到数组的大小;
3.可以运行时利用...
分类:
编程语言 时间:
2014-09-18 20:43:44
阅读次数:
281
STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。本文先分别介绍这个三个Sort,再整合分析STL so...
分类:
其他好文 时间:
2014-09-17 11:45:12
阅读次数:
235
function go_to_top(){ //把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数) window.scrollBy(0,-10); //延时递归调用,模拟滚动向上效果 scrolldelay = setTimeout('go_to_top()',5)...
分类:
Web程序 时间:
2014-09-16 15:51:30
阅读次数:
192
树是一种非线性的数据结构,树有根节点,子树等概念。
二叉树(Binary Tree):每个节点最多有两颗子树,并且子树有左右之分。
概念:树的深度,满二叉树,完全二叉树,树的节点树
二叉树包括顺序存储和链式存储,这里只说链式存储。二叉树的每个节点和双链表有些类似,但是树的结构要比双链表复杂,在构造树的过程中涉及到递归调用的问题,递归的问题往往是很复杂的问题,因此,这里单独说二叉树的构建。
...
分类:
其他好文 时间:
2014-09-15 19:36:19
阅读次数:
142
尾递归(tail recursive),看名字就知道是某种形式的递归。简单的说递归就是函数自己调用自己。那尾递归和递归之间的差别就只能体现在参数上了。尾递归wiki解释如下:豪享博娱乐城尾部递归是一种编程技巧。递归函数是指一些会在函数内调用自己的函数,如果在递归函数中,递归调用返回的结果总被直接返回...
分类:
其他好文 时间:
2014-09-13 21:24:45
阅读次数:
385
与普通递归相比,由于尾递归的调用处于方法的最后,因此方法之前所积累下的各种状态对于递归调用结果已经没有任何意义,因此完全可以把本次方法中留在堆栈中的数据完全清除,把空间让给最后的递归调用。这样的优化便使得递归不会在调用堆栈上产生堆积,意味着即时是“无限”递归也不会让堆栈溢出。这便是尾递归的优势。有些...
分类:
其他好文 时间:
2014-09-13 21:17:45
阅读次数:
262