第十二章 二叉搜索树 >=左子树的所有key,<=右子树的所有key 在一棵高度为h的二叉搜索树上,动态集合上的操作SEARCH,MINIMUM,MAXIMUM,SUCCESSOR,PREDECESSOR,INSERT和DELETE可以在O(h)时间内完成。 h>=(lgn向下取整) 和快速排序算法 ...
分类:
编程语言 时间:
2017-08-17 14:35:57
阅读次数:
128
2017-08-17 11:40:36 writer:pprp 最简单的插入排序,用代码实现思想 ...
分类:
编程语言 时间:
2017-08-17 14:23:14
阅读次数:
162
主要参考: 算法导论 最长公共子序列LCS(动态规划) 其中,理解递推公式之后,要理解代码中的c数组 是怎么变化的(结合下面这个图的过程,过程为:每一行,从左到右) 该文章中,打印LCS的过程(C语言,包括递归和非递归版本)也容易看懂。 Java版本可以参考:最长公共子串、最长公共子序列的Java实 ...
分类:
其他好文 时间:
2017-08-16 21:44:08
阅读次数:
155
第十章 基本数据结构 栈:可由数组表示 队列:可由数组表示 指针和对象:可由多数组表示。可用栈表示free list 有根数: 二叉树:左右孩子 分支无限制:左孩子右兄弟表示法 第十一章 散列表 数组:为每个元素保留一个位置 散列表:用于实际存储关键字比全部可能关键字少很多时,比如字典操作 解决散列 ...
分类:
编程语言 时间:
2017-08-16 19:11:12
阅读次数:
163
第六章 堆排序 最小堆和最大堆:近似的完全二叉树 A[parent(i)]<=A[i]或者A[parent(i)]>=A[i] 建堆复杂度O(n) 排序O(nlgn) 实际应用中,快速排序一般优于堆排序。可用于优先队列等。 在一个包含n个元素的堆中,所有优先队列的操作均可在O(lgn)时间内完成。 ...
分类:
编程语言 时间:
2017-08-16 17:28:34
阅读次数:
145
8.1 排序算法的下界 定理8.1 在最坏情况下,任何比较排序算法都需要做Ω(nlgn)次比较。 推论8.2 堆排序和归并排序都是渐进最优的比较排序算法。 8.2 计数排序 计数排序假设n个输入元素中的每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为θ(n)。 ...
分类:
编程语言 时间:
2017-08-16 17:05:12
阅读次数:
128
MySQL技术内幕InnoDB存储引擎 一直有人在去推这本书,看着感觉过于理论不知道怎样 算法导论 这个也是经典但是,呵呵,我连买都没买过 tcp/ip 协议详解,这个我也是麦兜没买过 Unix 网络编程卷(2本) 写了这么多,我可能一本都不会去看,先写了吧,看不看得...... ...
分类:
其他好文 时间:
2017-08-16 11:30:02
阅读次数:
121
列思路,以后填坑。 a. 证明:最小生成树是瓶颈生成树 证略 b. 给定图G和整数b,线性时间内判断瓶颈生成树T值是否不超过b 解:DFS或BFS遍历图G,跳过所有权值大于b的边,最后若有节点未遍历到,则T值大于b,否则不超过b c. 求瓶颈生成树T值 1. 求出边权值的中位数(类似于求nth el ...
分类:
编程语言 时间:
2017-08-14 22:26:30
阅读次数:
622
算法导论(CLRS)答案 Chapter Section I 1 2 p II 1 2 3 p III 1 2 p IV 1 2 3 4 p V 1 2 3 4 p VI 1 2 3 4 5 p VII 1 2 3 4 p VIII 1 2 3 4 p IX 1 2 3 p XII 1 2 3 XI ...
分类:
编程语言 时间:
2017-08-11 19:30:44
阅读次数:
154
好多基础知识都没补完,只好看到、用到一个赶紧补全一个,并且保证下次需要的时候直接用,不用回来再补; 其实这个算法是在补同余最短路的时候用到的,当时突然发现理解算法导论上的原理甚至有效性证明,但是就是没办法写出来合适的代码。。于是到处寻找可以用来试验最短路径算法的试验场(当时学矩阵快速米的时候也是找了 ...
分类:
其他好文 时间:
2017-08-08 21:42:19
阅读次数:
141