zoukankan      html  css  js  c++  java
  • 关于有序查找的随笔

    当初有一个业务需求,给每个业务数据评分,并获取排行及排行占比。

    当时想着抽象来看,这就是有序查找,最高性能的有序查找只有二分查找法。想到二分查找立刻会想到二叉树。于是当初没多想,就用红黑树实现了这个功能。

    如今看了redis的有序集合,有了新的感悟。写下此随笔。

    redis的有序集合使用了哈希加跳表的方式实现。哈希主要是为了快速查询数据。跳表是为了实现数据有序。这才恍然大悟,原来除了二叉树还有其他的高效有序查找方法。

    跳表和二叉树一样,有序查找的时间复杂度能够达到O(log(n)),空间损耗比二叉树略高,但是实现相对简单,并且由于修改操作需要锁住的结点比二叉树少,在并发方面有更高的性能。

    由此可见上述业务更适合使用跳表实现。

  • 相关阅读:
    Vue单向数据流
    npm常用命令
    vue自定义指令
    slot的用法(Vue插槽)
    js闭包
    canvas 给画的多边形着色
    canvas画线
    canvas初体验
    canvas
    json
  • 原文地址:https://www.cnblogs.com/uip001/p/14661314.html
Copyright © 2011-2022 走看看