zoukankan      html  css  js  c++  java
  • 检索

    散列表

    什么是检索

    根据key去查找<key,value>,其中value可能是一个集合(好多信息)。所以检索的效率很重要,尤其当是大数据量的时候。需要对数据进行特殊的存储处理

    检索包括:线性表的检索、集合的检索、散列表的检索(常数时间内响应O(1),与规模无关的,常用搜索引擎的方法)

    提高检索的方法:预排序(如二分法,但是排序的过程本身耗时)、建立索引(建立辅助索引,用空间换时间,并且要维护额外的索引)、散列技术(与数据规模无关,但是不能用于查找范围内的,不能用于存在重复key的,不能用于磁盘)

    图1

    图2

    线性表索引(O(n))

    二分索引(O(log n))本质上是BST结构(二叉搜索树),但是需要提前排序并且插入不方便

    图3

    图4

    分块检索

    块内无序,块间有序,结合以上两种方法,查找较快也插入较方便。

    图5

    图6

    集合检索

    图7

    散列检索

    图8

  • 相关阅读:
    关于MFC库和CRT库冲突的分析
    C++ Traits技术
    C/C++的参数传递机制
    C++与正态分布
    前端JavaScript
    python 前端 css
    python 前端 html
    MySQL 数据库
    网络编程 生产者消费者模型 GiL

  • 原文地址:https://www.cnblogs.com/zmmz/p/9933950.html
Copyright © 2011-2022 走看看