编程语言
首页 > 编程语言> > 【C# 数据结构与算法】 分块查找

【C# 数据结构与算法】 分块查找

作者:互联网

概览

 

 

分块查找

分块查找要求把一个数据分为若干块,每一块里面的元素可以是无序的,但是块与块之间的元素需要是有序的。对于一个非递减的数列来说,第i块中的每个元素一定比第i-1块中的任意元素大。同时,分块查找需要一个索引表,用来限定每一块的范围。在增加、删除、查找元素时都需要用到。

使用场景

字典

班级

分块查找在现实生活中也很常用。例如,一个学校有很多个班级,每个班级有几十个学生。给定一个学生的学号,要求查找这个学生的相关资料。显然,每个班级的学生档案是分开存放的,没有任何两个班级的学生的学号是交叉重叠的,那么最好的查找方法实现确定这个学生所在的班级,然后再在这个学生所在班级的学生档案中查找这个学生的资料。上述查找学生资料的过程,实际上就是一个典型的分块查找。

前提条件

前提条件线性表顺序存储

特点

当数据表中的数据元素很多时,可以采用分块查找。

分块查找又称为索引顺序查找。它汲取了顺序查找和折半查找各自的优点,既有动态结构,又适于快速查找。

 特点:块内无序、块间有序

平均查找长度(ASL)

1、无规律的分布块

 

2、有规律的分布块

 

 

 

 



 注意: 对索引表进行折半查找时,若索引表中不包含目标关键字,则折半查找最终停在low>high,要在low所指分块中查找

链式存储分块

 

 

 

 

 

 


 

标签:折半,班级,分块,C#,元素,学生,查找,数据结构
来源: https://www.cnblogs.com/cdaniu/p/16361415.html