算法之路
文章平均质量分 53
love凤凤
自制力是最强者的本能!
展开
-
递归
什么是递归?递归由两部分组成:递归条件:递归中反复执行的部分。 基线条件:跳出循环的部分。举例 求阶乘的c代码int func(int n){ if(n==1||n==0) return n;//基线条件else return n*func(n-1);//递归条件}递归的效率递归与其他循环相比,并没有效率的优势,有时候反而不如其他的循环。但他的优点是代码简洁,易于理解。用于解决哪些问...原创 2018-05-20 14:26:08 · 2556 阅读 · 0 评论 -
分治策略
前面了解了递归的思想,接下来介绍一种经典的基于递归思想来解决问题的方法:分治策略。简单的说:分治策略分为两步: (1)找出 基线条件,这种条件必须尽可能简单; (2)不断缩小问题规模,直至符合基线条件。举个栗子: 如果你有一块地,这块地是一块矩形,长1680米。宽640米,要求将这块地均匀的分成方块,且分出的方块要尽可能的大,该怎么做?这里使用分而治之的...原创 2018-05-21 09:57:14 · 325 阅读 · 0 评论 -
散列表
散列表是一种使用非常广泛的数据结构,可能也是最有用的数据结构。在我接触散列表之前我就已经开始使用它了,只是当时知识不够,没有意识到。好了,废话不多说,进入正题吧。先举个栗子。假如你面前有一本厚厚的电话簿,里面记载了大量的姓名和电话号码。你的工作就是从其中快速找到某一个人的电话号码。(当然现实不会有这么无聊的工作的)可能你会想到使用二分查找,但是这依然需要不少的时间。而为了追求效率,我们希望的是得到...原创 2018-05-21 14:14:44 · 2201 阅读 · 1 评论