- 博客(18)
- 收藏
- 关注
转载 浅谈算法和数据结构: 十 平衡查找树之B树
转载自:https://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序...
2018-09-28 16:38:37
239
转载 浅谈算法和数据结构: 九 平衡查找树之红黑树
转载自https://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html 前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构...
2018-09-28 16:14:31
363
转载 浅谈算法和数据结构: 八 平衡查找树之2-3树
前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这一目标我们需要保证树在插入完成之后始终保持平衡状态,这就是平衡查找树(Balanced Search Tree)。在一棵具有N 个节点的树中,我们希望该树的高...
2018-09-28 13:27:57
215
转载 平衡二叉树详解
平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来...
2018-09-28 11:11:24
17232
2
转载 浅谈trie树(字典树)
一、引入字典是干啥的?查找字的。字典树自然也是起查找作用的。查找的是啥?单词。看以下几个题:1、给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。答:简单!map,短小精悍。好。下一个2、给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。答:map,把每个单词拆开。judge:n<=200000,TLE!这...
2018-09-28 08:39:17
210
转载 Trie树(字典树):应用于统计和排序
转载这篇关于字典树的原因是看到腾讯面试相关的题:就是在海量数据中找出某一个数,比如2亿QQ号中查找出某一个特定的QQ号。。有人提到字典树,我就顺便了解下字典树。 [转自:http://blog.csdn.net/oncealong/article/details/51707256] [转自:http://blog.csdn.NET/hguisu/article/de...
2018-09-28 08:24:49
435
转载 【啊哈!算法】算法11:堆——神奇的优先队列(上)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢? 假如有14个数分别是99、...
2018-09-28 06:36:50
148
转载 深入剖析 Stagefright AudioPlayer
Content 架构概述 代码详解 运作流程图1. 架构概述在Stagefright中,AwesomePlayer只负责完成Video的处理,而Audio部分则交由AudioPlayer完成。整个Android Mediaframework 的运作部分可分为三层,即libmedia, libmediaplayerservice, libst
2015-08-12 13:12:42
441
转载 Stagefright Playback -- 精简版(个人整理)
注:本文主要参考了“stagefright框架(X)”系列的几篇文章,并基于Android 4.0.3源代码结合自己的理解整理而成。由于是精简版本,故未贴上相关源代码,请谅解。1 Stagefright Player location in Android media framework图 1Stagefright于Android 2.0版本引入系统,自 Android 2.
2015-08-12 11:59:57
458
转载 Linux source 命令
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚本中设置的变量将成为当前Shell的一部分。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修
2012-10-22 17:27:03
268
转载 Makefile 常用函数表
Makefile 常用函数表一、字符串处理函数1.$(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst。函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。返回值:替换后的新字符串。2.$(patsubst PATTERN,REPLACEMENT,TEXT)函数名称:模式替换函数—patsubst。函数功能:搜索“TE
2012-10-19 09:01:10
246
转载 关于ARM的异步总线和同步模式
转载自http://hi.baidu.com/cumt_xiaopeng/item/9bc3e51ca00e6906e65c3689关于ARM的异步总线和同步模式快速总线模式:在快速总线模式,GCLK来自于BCLK,FCLK输入被忽略。这意味着BCLK被用来控制AMBA ASB接口和内部的ARM920T处理器核。复位时,ARM920T进入快速总线模式,操作使用BCLK。一般快速总线
2012-09-27 09:30:11
1404
转载 Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程
2012-09-14 10:57:34
250
转载 Java序列化算法透析
转自http://blog.chinaunix.net/uid-21125022-id-1830464.htmlJava序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需
2012-09-14 10:13:18
292
转载 Eclipse RCP:View 与 Editor 交互
parts 之间有三种交互方式:(1)使用 selectionIWorkbenchSite 允许 view 和 editor 调用其 setSelectionProvider 方法发布 其selection,其他 view 和 editor 可以通过 ISelectionService.addSelectionListener(ISelectionListener) 注册监听selec
2012-09-06 16:39:18
755
转载 资源监听与访问
转载自http://space.itpub.net/13081368/viewspace-408721有很多的插件和工具都会关心Workspace中资源的改变,例如,当用户打开的编辑器所依赖的资源被删除掉时,应该先关闭打开的编辑器,还有,当Workspace中的资源被改变后,构建器要进行相应的构建等,这些都可以通过资源监听器实现。 资源监听器 Eclipse插件实现资源监听的主
2012-09-06 16:30:53
551
转载 SWT常用组件
摘自《基于Eclipse的开源框架技术与实战》第13章SWT(Standard Widget Toolkit)本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或许是有意为之,至今为止,SWT无论在性能上还是外观上,都超越了Sun公司提供的AWT和Swing。本章主要介绍如下几方面的内容:SWT程序SWT中使用S
2012-09-06 15:16:35
3838
1
转载 Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
转载自http://selives.blogbus.com/logs/27714366.htmlArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,
2012-09-06 14:05:35
288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人