![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 78
RuleWork
Focus on technology as an elegant art to express ideas and content.
展开
-
算法与数据结构 | 解析递归与尾递归
一.什么是尾递归在之前的的第一篇文章中深入的探讨了什么递归,并在文末引出了一种新的递归方式:尾递归。接下来我们先给出定义: 如果一个函数中所有递归形式的调用都出现在函数的末尾,即当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代...原创 2018-09-15 19:13:43 · 348 阅读 · 0 评论 -
算法与数据结构| 深入理解分而治之与快速排序
一.分而治之分而治之(divide and conquer,D&C)是一种解决问题的重要的策略。它不仅是一种递归式的解决方法,更是一种分析问题的思维模式,尤其在程序设计中反映着一个人的算法内功,其重要性不言而喻。下面我们先来假设这样一个场景: 你要给自己的卧室铺瓷砖,卧室的地面空间是一个矩形,瓷砖是正方形,要求你将尽可能大的瓷砖均匀的铺在地面上,你会怎么做?这个问题有两个核心...原创 2018-07-21 17:05:22 · 456 阅读 · 0 评论 -
算法与数据结构 | 深入理解栈与递归
1.如何理解递归?递归是一种全新的思维方式,初学递归总会有知其然却不知其所以然的感觉,这里我们可以从循环入手,探讨递归与循环的内在差别。理论上:所有的递归都可以用循环实现,但实际上有的算法因为循环次数过多,很难转换。(如:汉诺塔问题)。我们先来假设这样一个场景有一个大盒子,打开,里面还是一个盒子,再打开,还是盒子,直到你打开很多次后,最后一个小盒子里放了颗钻石。1.如果用循...原创 2018-07-07 19:27:18 · 466 阅读 · 0 评论