查詢之分塊查詢

2021-08-19 10:14:49 字數 452 閱讀 1402

分塊查詢又稱索引順序查詢,吸取順序查詢和折半查詢的優點

基本思想:將查詢表分為若干個子塊。塊內的元素可以無序,但塊件是有序的,即第乙個塊中的最大關鍵字小於第二塊中的所有關鍵字,依次類推。再建乙個索引表,索引表中的元素含有各塊的最大關鍵字和各塊中第乙個元素的位址,索引表按關鍵字有序排列。

示意圖

查詢分2步

a. 首先在索引表中進行折半查詢,確定元素在那個塊間(折半查詢可以檢視前面所寫),當查詢到low=high時,對比mid對應的值和key. 相同則返回起始位置。否則返回塊首位置和塊末位置。

b. 再在塊間進行順序查詢,得到元素的位置

4 . 平均查詢長度

asl = l1 + ls(索引表的折半asl,加上塊間的順序查詢asl)

查詢演算法之分塊查詢

演算法思想 1.將n個資料元素 按塊有序 劃分為m塊 m n 2.每一塊中的結點不必有序,但塊與塊之間必須 按塊有序 3.即第1塊中任一元素的關鍵字都必須小於第2塊中任一元素的關鍵字 4.而第2塊中任一元素又都必須小於第3塊中的任一元素,分塊查詢是折半查詢和順序查詢的一種改進方法,分塊查詢由於只要求...

程式改錯之分塊查詢

錯誤 include define maxsize 100 typedef struct indexelem indexelem index maxsize int indexsearch indexelem index,int m,int r,int n,int key i index high ...

資料結構 靜態查詢之分塊查詢

分塊查詢 分塊查詢,也稱索引順序查詢,是一種折半查詢和順序查詢的改進方法。思想 把線性表分成若干塊,每塊包含若干個元素 塊內無序,塊間有序。建立乙個索引表,把每塊中的最大關鍵字值和每塊的第乙個元素在表中的位置和最後乙個元素在表中的位置存放在索引項中。先確定待查資料元素所在的塊,然後再塊內順序查詢 如...