索引順序表查詢演算法(分塊查詢演算法)

2021-07-29 12:50:06 字數 396 閱讀 8585

有時候,可能會遇到這樣的表:整個表中的元素未必有序,但若劃分為若干塊後,每一塊中的所有元素均小於(或大於)其後面塊中的所有元素。我們稱這種為分塊有序

首先,我們需要先建立乙個索引表,索引表中為每一塊都設定–索引項,每乙個索引項都包含兩個內容:

在前面建立的索引表的基礎上,我們查詢乙個關鍵字需要兩個步驟:

在索引表中查詢,目的是找出關鍵所屬的塊的位置。這裡如果索引表較大的話,可以採用折半查詢。

進入該塊中,使用簡單順序表查詢演算法進行關鍵字查詢。

這種帶索引表的分塊有序表查詢的時間效能取決於兩步查詢時間之和:如前面所述,第一步可以採用簡單順序查詢和折半查詢之一進行。第二步只能採用簡單順序查詢,但由於子表的長度較原表的長度小。因此,其時間效能介於順序查詢和折半查詢之間。

索引順序查詢(分塊查詢)

索引順序查詢又叫分塊查詢,它是介於順序查詢和折半查詢之間的一種查詢方法。折半查詢雖然具有很好的效能,但其前提條件是線性表順序儲存而且按照關鍵字排序,這一前提條件在結點數很大且表元素動態變化時難以滿足。而順序查詢雖然可以解決表元素動態變化的要求,但查詢效率很低。如果既要保持查詢效率,又要能夠滿足表元素...

索引順序表(分塊)查詢分析

二 分塊查詢的基本思想 三 分塊查詢示例 四 演算法分析 平均查詢長度asl 索引順序查詢又稱分塊查詢 blocking search 它是一種效能介於順序查詢和二分查詢之間的查詢方法。查詢表由 分塊有序 的線性表和索引表組成。表r 1 n 均分為b塊,前b 1塊中結點個數為s n b 第b塊的結點...

查詢演算法 分塊查詢

分塊查詢也稱為索引順序表查詢。分塊查詢就是將順序表 主表 分成若干個子表,然後為每個子表建立乙個索引表,利用索引在其中乙個子表中查詢。兩部分 索引表 儲存順序表的每個子表的開始索引和最大值。順序表 主表所有資料存放的位置。子表內可以是無序的,但是子表之前面的子表中每個元素必須小於後面子表中的每個元素...