算法精解真的是一本不错的书,虽然我真的不是很喜欢看书,但是不知不觉间就看完了6单元。里面对每一模块的具体代码实现和分析,写的非常透彻。初入CSDN,也是决定要好好学习一波,自此开始好好记录自己学习的一步步脚印和一次次的失败。不知道能坚持多久,但希望能久一些。

1.递归的认知。

不知大佬对递归的理解是如何的,在我看来递归像是一个悠悠球。当达到某个临界点时,在原路返回。

其实悠悠球就是递归的方法,而悠悠球的线就是递归方法实现。而线越长(方法实现越差),球从扔出到回来的时间越长(递归实现的优劣)。可能理解的较为粗糙。但是我喜欢将学的东西具现化。

程序运行就是最显著的递归表现,A->B->C->B->A。

例:

A()
{printf("A");B();printf("A2");
}B()
{printf("B");C();printf("B2")
}C()
{printf("C");
}//输出结果为:
ABCB2A2

2.递归三要素

1、明确递归终止条件; 2、给出递归终止时的处理办法; 3、提取重复的逻辑,缩小问题规模。

3.递归的简单实例

3-1以递归的方式计算阶乘的函数实现

//以递归的方式计算阶乘的函数实现
int fact(int n)
{if(n < 0)return 0;else if(n == 0)return 1;else if(n == 1)return 1;elsereturn n * fact(n-1);
}

3-2尾递归

//如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。
int facttail(int n,int a) //a的初始值为1
{if(n < 0)return 0;else if(n == 0)return 1;else if(n == 1)return a;elsereturn facttail(n-1,n*a);
}

算法精解:C语言描述(递归)相关推荐

  1. 资料 | O‘Reilly精品图书系列:算法精解 C 语言描述 (简体中文)

    下载地址:资料 | O'Reilly精品图书系列:算法精解 C 语言描述 (简体中文) 内容简介 · · · · · · 本书是数据结构和算法领域的经典之作,十余年来,畅销不衰! 全书共分为三部分:第 ...

  2. 算法精解 c语言描述 豆瓣,斯坦福大学教授亲授,这本美亚4.7星的算法书,新手程序员都看得懂!...

    原标题:斯坦福大学教授亲授,这本美亚4.7星的算法书,新手程序员都看得懂! "算法会扩展并提高大家的编程技巧,而学习基本的算法设计范式,可以和许多不同领域的不同问题密切相关,还能作为预测算法 ...

  3. 算法精解_C语言 链表_单链表(接口定义+类型实现)

    链表可以说是一种最为基础的数据结构.链表由一组元素以一种特定的顺序组合或链接而成,在维护数据的集合时很有用.这一点同我们常用的数组很相似.然而,链表在很多情况下比数组更有优势.特别是在执行插入和删除操 ...

  4. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

    转载自  JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑 ...

  5. JVM内存管理------GC算法精解(复制算法与标记/整理算法)

    转载自  JVM内存管理------GC算法精解(复制算法与标记/整理算法) 本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此 ...

  6. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 优先级队列 — 左高树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 优先级队列 - 左高树 一.左高树 1.外部节点 2.高度优先左高树 (1)定义 (2)特性 (3)HBLT 与 大小根树 3. ...

  7. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 回溯法

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 回溯法 一.算法思想 二.货箱装载 1.问题描述 2.回溯算法 3.实现 4.测试代码 一.算法思想 回溯法是搜索问题解的一种系 ...

  8. 数据结构习题精解 C语言实现+微课视频(习题解答、研考试题、微课视频)

    数据结构习题精解 C语言实现+微课视频(习题解答.研考试题.微课视频) 配套 数据结构.数据结构C语言实现等经典教材的课后习题解答,著名高校典型考研试题详解.微课视频

  9. JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)

    转载自   JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...

  10. 数据结构、算法与应用c++语言描述(答案)

    数据结构.算法与应用c++语言描述(答案) https://www.cise.ufl.edu/~sahni/dsaac/view.htm   本身不是计算机专业的,属于那种自学半路出家的,最近刚开始看 ...

最新文章

  1. android AIDL IPC深入分析
  2. Failed to initialize NSS library
  3. [转载] 大道至简:软件工程实践者的思想——第六章 谁是解结的人
  4. C/C++宏定义中#与##区别 .
  5. 李国庆俞渝撕破脸,当当喊话:冲动是魔鬼 冷静下来吧
  6. java 增 删 查 改_如何对java链表进行增、删、查、改操作
  7. Android开发笔记(三)屏幕分辨率
  8. 会话技术——Cookie和Session
  9. vue监听数组元素属性的变化_为什么Vue3.0不再使用defineProperty实现数据监听?
  10. 嵌入式系统那些事—脚本语言tcl
  11. 联想笔记本S10电池拆解
  12. CDH集群清理磁盘空间
  13. 马尔可夫毯(Markov Blanket)
  14. Python OpenSSL基本操作接口
  15. CAD图纸转换成高质量的PDF文件,两种方法一步搞定哦
  16. 输入神经网络的数据类型要求,神经网络数据格式
  17. 机器学习综述——机器学习理论基础与发展脉络
  18. linux下 不显示光驱,Windows7电脑下不显示光驱盘符的解决方法
  19. 【报告分享】 2020年汽车产销数据及汽车工业运行情况-中国汽车工业协会(附下载)
  20. left out join举例

热门文章

  1. 《普林斯顿微积分读本》学习笔记
  2. win10任务栏透明_Win10 美化软件(简洁篇)
  3. win7计算机桌面位置,win7系统更改桌面位置的操作方法
  4. Ubuntu中超级终端-minicom
  5. python车流量检测车流统计车辆计数yolov5 deepsort车流检测
  6. 五分钟使用WebStack构建个人网址导航
  7. NTSD命令用法详解
  8. RT-Thread Studio开发GD32VF103
  9. 论软件产品的易用性(一)
  10. JS 幻灯片代码(含自动播放)