zoukankan      html  css  js  c++  java
  • 数据局部性(data locality)

    信息处理的典型模式是,将所有数据项视为一个集合,并将其组织为适宜的数据结构(或者说使用适宜的数据结构对之进行存储以及组织),进而借助操作接口高效访问。

    为了考查和评价各操作接口的效率,除了从最坏情况的角度出发,也可假定所有操作彼此独立、次序随机且概率均等,也即从平均情况的角度出发。然而,实际中,后一尺度所依赖的假定条件(独立随机等概率),往往不足以反映真实的情况。

    实际上,在任意数据结构的生命周期内,不仅执行不同操作的概率往往极不均衡,而且各操作之间具有极强的相关性,并在整体上呈现出极强的规律性。其中最为典型的就是所谓的“数据局部性(data locality)”,这包括两方面的含义:

    • 1)刚刚被访问过的元素,极有可能在不久之后再次被访问到;
    • 2)将被访问的下一个元素,极有可能就处于之前被访问过的某个元素的附近;

    充分利用好此类特性,即可进一步地提高数据结构和算法的效率。就二叉搜索树而言,数据局部性表现在:

    • 刚刚被访问过的结点,极有可能在不久之后再次被访问到;
    • 将被访问的下一节点,极有可能处于不久之前被访问过的某个结点的附近;

    如何利用这一重要的访问特性呢?

    只需将刚被访问的结点,及时地“转移”至树根(附近),即可加速后续的操作。当然,转移前后的搜索树必须相互等价。

  • 相关阅读:
    C/C++产生随机数
    BNUOJ34973Liserious战队
    oracle ebs 12.20 安装成功其过程失败日记及总结(1)
    HDU 2544 最短路 SPFA 邻接表 模板
    GridView编辑删除操作
    Hibernate_10_继承的例子_单表
    String不变性
    Mac在结构quick cocos2d-x编译环境
    Hash散列算法 Time33算法
    南京地图南京全套的卫星地图下载 百度高清卫星地图包括道路、标签信息叠加
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423683.html
Copyright © 2011-2022 走看看