
算法
dummyedu
这个作者很懒,什么都没留下…
展开
-
算法导论十一章
散列表: 本章介绍了散列表的各种问题。散列函数:除法散列,乘法散列,全域散列。 其中除法散列是简单的mod. 乘法散列为h(k) = m(kA mod 1). 即关键字k乘常数A, 然后取小数部分, 乘以m. 全域散列是一组散列函数,这些函数都可以将关键字域U映射到相同的集合中, 同时对k, l 属于U. 满足h(k) = h(l)的散列函数的个数最多是: 散列函数的数目/集合的大小. 散列原创 2007-02-08 14:59:00 · 2307 阅读 · 0 评论 -
算法导论第十二章
二叉查找树: 定义为任何父亲节点数据的大小都大于左子女, 小于右子女。 这样, 中序遍历树即可拿到树的一个排序。插入节点的过程就是建树的过程。 为了使树的结构能更趋于平衡, 在插入前, 将序列随机化是一个非常不错的办法。 主要实现了insert, delete, maxmum, minimum, next, previous方法, 以下是我的实现. 用节点作树的存储结构:其中TreeNode是节点原创 2007-02-08 15:02:00 · 1876 阅读 · 0 评论 -
写二叉树时候的一个感悟
今天看到搜索2叉树一章, 后面还有红黑树等等, 于是想, 所有树的遍历方式都雷同, 干脆写一个叫做BinaryTree的抽象类, 并实现基本的二叉树行为, 比如遍历等。 针对Tree写traverse, insert, delete等虚函数, 然后其他树派生,可以替换不同的Tree来实现。 想到就做, 写到traverse的实现, 应该是这样子的:templateclass BinaryTree{原创 2007-02-08 15:00:00 · 2388 阅读 · 1 评论 -
研究算法的一些想法
以前学习算法,通常是书一看而过, 好像很明白,简单一点的算法说起来也清清楚楚, 复杂一点的概念清晰, 特别难得一窍不通。 这种感觉让人很闷, 应该是因为动手不够, 所以越发复杂, 不动手的话,基本就难以理解了, 而如果要自己写一个算法来实现, 就算概念清晰,清清楚楚, 也要花不少时间, 还要查若干资料。 要在实践中选择应用更加有效的算法, 更是难上加难了。所以很有欲望写一个算法的项目原创 2007-01-08 16:02:00 · 938 阅读 · 1 评论 -
发现对标准库的理解不够
今天准备写一个最简单的插入排序,最开始打算实现如下函数:templatevoid insertionSort(Iter first, Iter last, Function f)在写得时候,突然发现, 因为插入排序,需要定义一个临时变量,这个变量的类型应该是*Iter所代表的类型, 但是, 在这里拿不到。 有点发晕, 查了一下标准库算法的一些实现, 发现标准库的实现中, 类型是用trait原创 2007-01-08 16:03:00 · 889 阅读 · 1 评论 -
算法导论:第七章 快速排序
这章介绍了应用广泛的快速排序算法。 快速排序的最坏性能是O(n*n), 但是平均性能 却不错,而且系数较小。 故而被广泛使用。 因为快速排序本身很简单, 所以本章的重点在于算法性能的分析。 算法性能并不是本次算法学习的重心, 所以只是读了证明, 习题中的算法性能分析部分只是略略看过, 以后各章的性能分析恐怕也不能花太多功夫, 毕竟不是在求学阶段, 太过基础的东西,很难静下心来慢慢看过了, 实用意原创 2007-01-15 17:08:00 · 1768 阅读 · 0 评论 -
算法导论: 第六章 堆排序算法
堆排序, 一种基础算法, 实现了一个二叉树, 根节点的值大于子节点, 就是最大堆。 小于子节点, 就是最小堆。 堆排序的性能是O(nlg(n)). 插入, 取值都是O(lg(n)). 优先级队列经常用堆排序来实现。 以下是我的实现:inline int heapLeft(int i) {return 2 * i + 1;}inline int heapRight(int i) {原创 2007-01-15 11:16:00 · 832 阅读 · 0 评论 -
将项目从VC6转到VC Express
原来项目是用VC6的, 但是用着用着发现VC6的编译器和标准库差的很远, 于是诺到VC Express, 别的都还顺利, 就是cppunit突然链接不上dll, 试了一阵子没有成功, 就build成静态链接库, 搞定。原创 2007-01-16 10:45:00 · 1687 阅读 · 0 评论 -
算法导论第十三章
红黑树是一种较为平衡的搜索树, 当然满足所有搜索树应该具有的特点.红黑树的几个性质:1. 节点或红或黑 2. 根是黑的 3. 叶是黑的(叶均为nil, 是所谓的外节点, 而有值的节点均为内节点)4. 如果一个节点是红的,则它的子女均为黑的 5. 对于任何节点, 从该节点到该节点的子孙叶节点的所有路径上所包含的黑节点数量相同。从定义可以得到定理:一颗n个内节点的红黑树高度最多2lg(原创 2007-05-16 17:15:00 · 2053 阅读 · 1 评论