
数据结构相关
文章平均质量分 85
fjs_cloud
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树--java TreeMap
红黑树是自己看源代码时候最先遇到的比较高级的数据结构,早就想写一篇关于红黑树的文章了,但是因为时间的关系,一直没有弄。。。 首先来说在什么地方用到了红黑树: (1)nginx的定时事件用到了红黑树,用它来定位当前超时时间最近的节点(libevent采用的是小根堆) (2)STL中的map底层就是采用红黑树实现的 (3)linux调度中对进程的管理有用到 (4)java的TreeMap采用原创 2013-07-17 18:58:01 · 2168 阅读 · 0 评论 -
小根堆(java)
晚上睡不好觉白天效率就不行,昨天就已经把小根堆的代码写好了,但是因为没什么状态,文章拖到了今天才写。。 首先什么是小根堆: (1)它是一颗完全二叉树 (2)任意一个节点均小于或等于其左右子节点的关键码(大根堆相反就是了) 因此可以得知,当前树形结构的根节点就是当前整个树形结构最小的节点。。。 至于说这种堆结构有什么作用: (1)以前本科的时候上数据结构课的时候就有讲过堆排序,好原创 2013-07-20 11:02:07 · 3635 阅读 · 1 评论 -
红黑树与小根堆性能对比(java)
因为nginx与libevent采用了不同的数据结构来维护超时事件,其中nginx采用了红黑树,libevent采用的是小根堆,所以一直比较好奇,这两种数据结构谁在这种应用场景下更合适(当做优先权队列来用) 好吧,好奇那就试一下就好了。。。 小根堆就用前面的那篇文章中自己实现的那个代码,代码比较挫,也没有做什么优化,红黑树通过继承java的TreeMap来实现。。。 测试案例: 向两种结构原创 2013-07-20 17:22:44 · 4006 阅读 · 0 评论 -
java的HashMap与ConcurrentHashMap
好像今天没有什么源码读,那么就来看看java的这两种HashMap有啥不一样的地方吧,在这之前先普及一下HashMap的一些基本知识: (1)放入HashMap的元素是key-value对。 (2)底层说白了就是以前数据结构课程讲过的散列结构。 (3)要将元素放入到hashmap中,那么key的类型必须要实现实现hashcode方法,默认这个方法是根据对象的地址来计算的,具体我也记不太清楚了原创 2013-09-17 14:03:11 · 6581 阅读 · 0 评论 -
无锁编程(CAS以及java的实现)
无锁的编程可以使程序获得更好的伸缩性,通过对处理器的CAS指令的利用。然后介绍一下java中是如何使用的。。。。原创 2013-11-29 15:51:45 · 6135 阅读 · 1 评论 -
跳表(SkipList)与其在java中的使用
跳表(SkipList)这种数据结构算是以前比较少听说过,它所实现的功能与红黑树,AVL树都差不太多,说白了就是一种基于排序的索引结构,它的统计效率与红黑树差不多,但是它的原理,实现难度以及编程难度要比红黑树简单。原创 2014-02-05 20:38:26 · 8363 阅读 · 0 评论