大話資料結構之 分塊索引

2021-07-28 02:25:41 字數 606 閱讀 8718

稠密索引因為索引項和資料集的記錄個數相同,所以控制項代價很大。為了減少索引項的個數,我們可以對資料集進行分塊,使其分塊有序,然後再對每一塊建立乙個索引項,從而減少索引項的個數。

分塊有序,是把資料集的個數分成了若干塊,並且這些塊需要滿足兩個條件

對於分塊有序的資料集,將每塊對應乙個索引項,這種索引方法叫做分塊索引。

如圖:

在分塊索引表中進行查詢,一般分為兩步:

在分塊索引表中先查找到關鍵字所在的塊。由於分塊索引表之間是有序的,因此很容易利用折半、插值等演算法找到結果。如在如圖的分塊資料集中查詢62,可以很快的由分塊索引表中根據57<62<96得到62在第三個塊中。

根據塊首位址找到對應的塊,並在塊中順序查詢關鍵字。因為塊中可以是無序的,因此只能順序查詢。

應該說分塊索引的思想還是很容易理解的。

總的來說,分塊索引在兼顧了對細分塊不需要有序的情況下,大大增加了整體的查詢速度,所以被普遍由於資料庫表的查詢等技術中。

資料結構複習之分塊

分塊大暴力!分塊大暴力!分塊是乙個具有很強普適性的資料結構。可以適用於許多區間操作,只是效率略低了一點。分塊大體的套路如下 預處理出整塊的貢獻,暴力搞邊界兩個非完整塊的貢獻。分塊由鬼畜證明每個塊的大小為sqrt n 的話複雜度比較好。一下為分塊板子 解釋一下幾個陣列的意思 block是每個塊的大小,...

《大話資料結構》之分段查詢

我所謂的分段查詢包括 二分查詢 插值查詢 fibonacci查詢。三者都是不斷的縮小查詢範圍的查詢方法,只是在每次縮小多少範圍上有所區別。二分查詢 最簡單,每次一刀切,切一半,相對於其他兩種方法顯得很籠統,但是適配性不錯,沒有特殊限制。int binary search int a,int n,in...

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

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