靜態查詢表是指表結構不是在查詢過程中動態生成的,它可分為 順序查詢(無序)、二分查詢(有序)、分塊查詢(索引順序查詢)。
時間複雜度(o(n))
public static int seqsearch(int array, int key)
return -1;
}
時間複雜度(o(log2n))
//非遞迴實現
public static int binsearch(int array, int key)
return -1;
}//遞迴實現
public static int binarysearch(int key, int array, int low, int high)
return binarysearch(key, array, low, high);
}
時間複雜度介於順序查詢和二分查詢之間
分塊查詢又稱索引順序查詢,它是順序查詢的一種改進方法,效能優於順序查詢。
方法描述:
將n個資料元素「按塊有序」劃分為m塊(一般塊的長度均勻,最後一塊可以不滿)(m<=n),每一塊中的節點不必有序,但塊與塊之間必須「按塊有序」;即第一塊中的關鍵字必須小於(或者大於)第二塊中的關鍵字,第二塊中的關鍵字必須小於(或者大於)第三塊中的關鍵字,構造索引表,索引表按關鍵字有序排列。
如下圖所示:
圖示為乙個索引順序表,其中包括三個塊,第乙個塊的其實位址為0,快內最大關鍵字為25;第二個塊的其實位址為5,塊內最大關鍵字為58;第三個塊的起始位址為10,塊內最大關鍵字為88。
分塊查詢基本步驟:
step1、先選取各塊中最大關鍵字構成乙個索引表;
step2、查詢分兩個部分:先對索引表進行二分查詢或順序查詢,以確定待查記錄在哪一塊中;然後,在已確定的塊中用順序法進行查詢。
靜態查詢表
查詢表 search table 靜態查詢表 只進行查詢操作 動態查詢表 在查詢表上可以進行刪除和插入操作 1.靜態查詢表的順序查詢 int search seq sstable t,keytype key 2.有序表的查詢 2.1折半查詢 binary search int search bin ...
靜態查詢表演算法
演算法1 採用順序儲存結構建立靜態查詢表,對查詢表進行順序查詢和改進的順序查詢,並對其查詢效率進行比較 演算法2 採用順序儲存結構建立靜態查詢表 有序表,對有序表進行二分查詢 include include typedef int keytype typedef float keytype type...
靜態查詢表 順序查詢 折半查詢 分塊查詢
引言 除去各種線性和非線性的資料結構外,還有一種在實際應用中大量使用的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。對查詢表經常進行的操作有 1 查詢某個 特定的 資料元素是否在查詢表中 2 檢索某個 特定的 資料元素的各種屬性 3 在查詢表中插入乙個資料元素 4 從查詢表中刪去某個資料...