一些不常见但是很重要的数据结构

这篇文章是stackoverflow的一篇帖子。上面提到了很多有用的数据结构。有的听过了,经常用,有的没有听过,记录下来。

  1. Trie树。应用比较多,一个比较cool的trie的应用TRASH-A dynamic LC-trie and hash data structure。
  2. Bloom filter。wiki链接 删除某一项是不允许的,不过可以实现可计数的counting bloom filter
  • 在BigTable,Cassandra中都有使用
  • 可以用来快速检查是否拼写错误
Rope:rope 数据结构表示不能修改的字符序列,与 Java 的 String非常像。但是 ropes 效率奇高的字符串变换操作使得它与 String及其同一体系的可修改的 StringBuffer和 StringBuilder大不相同,非常适合那些执行繁重字符串操纵的应用程序,尤其在多线程环境下更是如此。 ibm文章 包含java实现。
  • stl实现:http://www.sgi.com/tech/stl/Rope.html
 skip list:这里有一个演示: http://iamwww.unibe.ch/~wenger/DA/SkipList/
  • Cassandra的索引
  • redis的SortedSet
Spatial Indices:尤其是 R-treesKD-trees Bit Array:压缩存储bit,支持快速的bit操作。 Zippers: 在函数式编程中非常有用。 Suffix tries: 字符串搜索非常有用。更酷的是suffix tree,可以O(n)的时间构建 Splay trees:非常酷的结构
  1. 非常小巧,仅需要类似二叉树的左右孩子指针
  2. 相对容易实现
  3. 性能良好,wiki地址
Heap-ordered search trees 邻接表:O(1)计算无向图的邻居节点 lock-free: 并查集 fibonacci堆  BSP Trees:应用在3D渲染领域 霍夫曼树:压缩 Finger Trees:在函数式结构中使用, wiki地址 Ring buffer Merkle trees Cukoo Hashing :用来提升hash方法的空间利用,基本思想是利用多个hash函数,降低冲突。   min-max heap 缓存参数无关数据结构: Cache Oblivious datastructures  Left learning Red-Back Trees: 论文 Bootstrapped skew-binomial heaps
  •  O(1) size, union, insert, minimum
  • O(logn) deleteMin
Interval Trees: 在Cassandra中有应用
上面仅仅写了一半,就有好多我不熟悉的了。剩下的一半不是很火,更是没有听过。就先这些吧。

转载于:https://www.cnblogs.com/sing1ee/archive/2012/10/12/2765064.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值