随笔分类 -  算法导论笔记

摘要:与动态规划类似,贪心算法也将问题化简为规模较小的子问题,并通过递归解决子问题来获取整个问题的解。不同的是,贪心问题不对子问题进行比较,而是只生成一个非空的子问题,而使选择在当时看上去是最优的(即“贪心”的含义)。 阅读全文
posted @ 2013-03-14 18:44 一叶斋主人 阅读(2121) 评论(3) 推荐(3) 编辑
摘要:这一篇主要关于最优二叉查找树的分析与实现,以及算法导论动态规划一章的几道思考题。 阅读全文
posted @ 2013-03-13 11:11 一叶斋主人 阅读(1425) 评论(0) 推荐(0) 编辑
摘要:动态规划常用于最优化问题。动态规划算法一般这样做:子问题首次求解完成后,将其存储到一张表中,以后每次需要使用到该问题的结果时,直接从表中查询,而不是再次求解。 阅读全文
posted @ 2013-02-28 15:54 一叶斋主人 阅读(2524) 评论(1) 推荐(1) 编辑
摘要:顺序统计树和区间树都是对红黑树的扩张:通过在节点添加字段完成其他的功能,如果该字段可以在O(1)时间内维护,就能够不影响红黑树本身操作效率渐进量级。这一篇主要是算法导论15章的习题。 阅读全文
posted @ 2013-01-29 17:10 一叶斋主人 阅读(3937) 评论(0) 推荐(0) 编辑
摘要:这一篇解决《算法导论》中红黑树章节的部分习题,在上一篇自己亲自实现红黑树后,解决这些题目就轻松多了。 阅读全文
posted @ 2013-01-16 20:16 一叶斋主人 阅读(4983) 评论(3) 推荐(3) 编辑
摘要:红黑树是一种相当复杂的数据结构,我仔细研究并亲手实现了它,这是一个多月来看《算法导论》给我带来成就感最大的一次。 阅读全文
posted @ 2013-01-14 19:29 一叶斋主人 阅读(4530) 评论(8) 推荐(2) 编辑
摘要:树几乎是使用最广泛地数据结构之一了,我想其原因是,在期望高度仅为 lg(n) 的结构中存储了 n 个元素。树中的每个操作,在每一层都使用了极具有价值的判断并降低了问题的复杂度,这几乎完美地体现了分治的思想。 阅读全文
posted @ 2013-01-09 08:51 一叶斋主人 阅读(1798) 评论(2) 推荐(0) 编辑
摘要:这一篇是我自己实现的散列表(链式散列表和开放寻址表),和一些习题的思路。这篇博文没有包括在一致散列假设下对开放寻址散列性能的分析以及全域散列的习题,因为这部分需要一定数论知识,也许在学习一遍附录A之后再来做这些题目会更好。因为没有包括这部分习题,所以这一篇也就比较单薄,因此我加上了前面涉及到的较短的“中位数与顺序统计学”一章,这样凑成一篇。 阅读全文
posted @ 2013-01-06 09:25 一叶斋主人 阅读(1791) 评论(0) 推荐(1) 编辑
摘要:最基本的数据结构:栈、队列、链表、二叉树。这一篇主要实现前三种数据结构,记录一部分习题的思路。这一篇比较简单,但算是学习更高级数据结构的良好开端吧。 阅读全文
posted @ 2013-01-05 09:13 一叶斋主人 阅读(1538) 评论(0) 推荐(0) 编辑
摘要:这一篇主要是关于快速排序的随机化版本和线性时间排序。前者即跟递归有关,又跟随机算法和概率分布有关,与后者合并作为一篇。主要记录一些算法的实现,和部分题目的思路。 阅读全文
posted @ 2013-01-04 12:22 一叶斋主人 阅读(2119) 评论(0) 推荐(0) 编辑
摘要:这一部分主要算法导论中递归式、堆排序和快速排序章节里选择的对我而言较有价值的题目。 阅读全文
posted @ 2012-12-31 08:55 一叶斋主人 阅读(2765) 评论(6) 推荐(1) 编辑
摘要:算法导论里的习题,有很多都是经典,不少题目都做不出来,到网络上找答案,再自己慢慢理解,这样的过程使我受益。我精选了一部分习题,写出思路作为存档以供查阅。从这篇博文开始,我尝试使用MathJax来显示公式,而不是之前若干篇博文中使用图片,如果你的浏览有什么问题,请告诉我。 阅读全文
posted @ 2012-12-21 09:07 一叶斋主人 阅读(2543) 评论(2) 推荐(3) 编辑
摘要:排序算法是最基础的一类算法。主要排序算法包括选择排序、插入排序、冒泡排序、合并排序、堆排序和快速排序。把这些排序算法全部实现一边,再把《算法导论》对应章节后面的习题做一遍,确实是系统学习算法的一个不错的开端。 阅读全文
posted @ 2012-12-12 14:07 一叶斋主人 阅读(2906) 评论(4) 推荐(2) 编辑