算法设计 - 查找基础知识

2015-04-13
阅读 6 分钟
7.5k
根据给定的关键字值,在一组数据中确定一个其关键字值等于给定关键字值的数据元素。   若存在这样的数据元素,则称查找是成功的;否则称查找不成功。一组待查数据元素的集合又称为查找表。

最优化问题的解法 - 动态规划

2015-03-31
阅读 3 分钟
8.7k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第15章的学习笔记 动态规划常用于最优化问题。可能存在多个取最优解的值,希望找到其中一个最优解。 {代码...} 动态规划的设计分为以下四个步骤: 描述最优解结构 递归定义最优解的值 按自底向上的方式计算最优解的值 由计算出的结果构造一...

树 - (二叉查找树,红黑树,B树)- B树

2015-03-28
阅读 3 分钟
3.6k
如果红黑树中的每个黑结点吸收它的红子女,并把它们的子女并入自身,描述这个结果的数据结构。 (2-3-4树) or 假设将一棵红黑树的每一个红结点 “吸收” 到它的黑色父结点中,来让红结点的子女变成黑色父结点的子女(忽略关键字的变化)。当一个黑结点的所有红色子女都被吸收后,其可能的度是多少?此结果树的叶子深度怎样

树 - (二叉查找树,红黑树,B树)- 红黑树

2015-03-23
阅读 6 分钟
7.5k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 关于二叉树的基本知识,可以参见:Java 实现基本数据结构 2(树) 以下是算法导论第13章的学习笔记 红黑树 BST的各种操作的时间复杂度是依赖于树的高度,通过使得BST成为红黑树,确保每次对BST进行插入和删除之后,树的高度上限依然是logn. 红黑树,本质上来...

树 - (二叉查找树,红黑树,B树)- BST

2015-03-22
阅读 5 分钟
5.1k
查找树是一种数据结构,支持动态集合操作。在二叉查找树上执行基本操作的时间与树的高度成正比。对已n个节点的完全二叉树,各种操作的最坏情况运行时间O(logn). 但是如果二叉查找树退化成含n个节点的线性链,各种操作的最坏情况运行时间O(n)。 一颗随机构造的二叉查找树的操作平均时间是O(logn).

Java实现基本数据结构2(树)

2015-03-18
阅读 11 分钟
14k
前面总结了,栈,队列,链表。 Java 实现基本数据结构 1(栈,队列,链表) 这篇笔记侧重点: 1 二叉树的三种遍历(前中后)迭代非迭代代码 2 重建二叉树的代码与分析 和 关于二叉树的题 简单理解 3 二叉查找树, 红黑树,Btree的性质,实际用途。比如hashmap用到了红黑树

Java 实现基本数据结构1(栈,队列,链表)

2015-03-17
阅读 10 分钟
14.5k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第十章的学习笔记 1 栈 栈顶指针 top (初始值top = -1)指向栈顶元素,插入时先修改指针再插入,删除时先取栈顶元素再修改指针. 1.1 性质 后进先出 入栈,出栈都是O(1) 1.2 核心代码 {代码...} {代码...} 2 队列 用array[n]数组实现的至多含...

线性时间的选择 - 求第K大(小)的数

2015-03-15
阅读 3 分钟
10k
虽是读书笔记,但是如转载请注明出处[链接] ..拒绝伸手复制党 以下内容是算法导论第九章的学习笔记。 1 求最大/小值 最优即O(n),比较n-1次 2 同时求最大值和最小值 最直白的是O(2n),比较2n-2次。还有一个优化的方法是成对的比较,把较小的与min比较,较大的与max比较。这样每对元素需要3次比较 {代码...} 以期望线性时间...