检索

散列表

什么是检索

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

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

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

图1

图2

线性表索引(O(n))

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

图3

图4

分块检索

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

图5

图6

集合检索

图7

散列检索

图8

猜你喜欢

转载自www.cnblogs.com/zmmz/p/9933950.html