SICP 习题 2.17 要求我们定义出过程last-pair,它返回只包含给定表里之后一个元素的表。比如 (last-pair (list 23 72 149 34))的结果应该是(34)当你开始做这道题的时候你应该已经看完书中有关list操作的内容了,你应该明白car和cdr分别是什么意思,也应该知道如何通过递归调用遍历一个list。有了以上基础的话完成习题2.17就是小菜一碟啦,基本思路就是...
分类:
其他好文 时间:
2014-12-25 01:30:03
阅读次数:
300
10.1.1.1 使用累加器参数
我们考虑一下,如何把 sumList 函数改成尾递归,即,只在参数值是 cons cell (非空的列表)的分支上,执行一次递归调用。我们的经验法则表明,不应该很难,但目前,它做的事情,不止是返回递归调用的结果:把头中的值与总和相加。
要把这个函数变成尾递归函数,可以使用提供累加器参数(accumulator argument)的方法。计算结果时,不再从...
分类:
其他好文 时间:
2014-12-18 15:11:40
阅读次数:
141
java函数的基本结构返回值类型 函数名(参数1,参数2){ 函数体}使用函数的好处提高代码的复用性便于程序分工协助开发便于代码集中管理/** * 写一个函数,产出多行* * @param n 打印n行* */ public static void printStar(int n,int m...
分类:
其他好文 时间:
2014-12-16 13:21:04
阅读次数:
174
快速排序是一个从程序设计基础开始,到数据结构,到算法都会提到的经典例子,常见的做法是取开头元素作为主元,将不大于它的元素放在前面,比它大的放在后面,而前面和后面再次递归调用。在scheme当中是这个样子的: 1 #lang racket 2 (define (smaller x l) 3 ...
分类:
编程语言 时间:
2014-12-14 11:49:56
阅读次数:
231
【注意】1.函数的递归调用只能用于静态的数据运算,如果是动态数据,风险过高,容易崩溃。2.除了man函数外 所有函数都可以被调用3.递归函数必须有一个参数//调用自身的函数,称为递归函数,调用自身的行为称为递归调用。【方法】1.首先确定临界值,即无需计算,获得的值。2.找这一次和上一次的关系。3.假...
分类:
其他好文 时间:
2014-12-11 20:43:51
阅读次数:
222
/***Date : 2014.12.10***/
//递归算法:是在程序中不断反复“调用自身”来达到求解问题的方法。 要求带求解问题能够分解为相同问题的一个子问题,多次递归调用,完成求解。
//递归调用时主调函数又是被调函数;执行递归的函数将反复调用其自身,每调用一次就进入新的一层。
//直接递归:在函数中调用函数本身。
//间接递归:间接地调用一个函数,用得不多。
//递归求阶乘...
分类:
编程语言 时间:
2014-12-11 00:20:52
阅读次数:
182
转自地址http://blog.csdn.net/metasearch/article/details/4428865在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较...
分类:
编程语言 时间:
2014-12-08 19:25:13
阅读次数:
209
9.6 实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对)。类似leetcode:Generate Parentheses解法:从头开始构造字符串,从而避免出现重复字符串。在这个解法中,逐一加入左括号和右括号,只有字符串仍然有效。每次递归调用,都会有个索引指向字符串的某个字符。我们需要选...
分类:
其他好文 时间:
2014-12-08 09:15:06
阅读次数:
156
思想:直接或者间接的调用自身来进行下一步计算。
一般的实现过程:通过函数或者子过程,直接或间接的调用函数或子过程,来进行计算。
要求:
每一次的循环调用,求解问题的规模必须要有所缩小。
相邻的两次循环调用,得有紧密的联系,通常,前一次的调用结果是后一次调用的输入。
必须有一个出口,即递归循环结束条件。
注意:递归调用的算法的运行效率通常比...
分类:
编程语言 时间:
2014-12-05 19:20:44
阅读次数:
189
如果直接使用递归,会因为递归层数过多导致段错误因此使用queue代替递归//递归调用层数过多,使用queue代替#include #include #include using namespace std;struct Point { int z, x, y; Point(int z, ...
分类:
其他好文 时间:
2014-12-01 12:36:17
阅读次数:
219