检索

散列表

 

什么是检索

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

 

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

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

 

图1

 

图2

 

线性表索引(O(n))

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

图3

图4

 

分块检索

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

 

图5

 

 

图6

 

 

集合检索

图7

 

 

散列检索

图8

 

posted on 2018-11-09 11:05  么猪~  阅读(257)  评论(0编辑  收藏  举报

导航