一、查詢分類
1.根據邏輯關係可分為線性查詢結構(順序表、鍊錶、雜湊表)和樹形查詢結構(b樹、b+樹、r樹);
2.根據查詢結構中的內容是否可變可分為靜態查詢結構和動態查詢結構。
二、線性查詢表
1.順序查詢
//查詢值為o的元素的下標,順序查詢
public int indexof(t o){
if(o=null){
for (int i=0; i
2.二分查詢
前提是順序必須有序,並且只適用於順序儲存結構,不能用鏈式的。因為鏈式的無法實現隨機訪問。
public int binsearch(int a, int key){
int low=0,high=a.length-1.mid;
while(lowlog2n)
3.分塊查詢
分塊查詢的基本思想是將原表分成若干塊,各塊內部不一定有序,但第i塊內所有記錄的關鍵字都小於第i+1塊內所有記錄的關鍵字。抽取最大關鍵字及其起始位置建立索引表,因為原表是分塊有序的,所以索引必定有序。
分塊查詢就是先用二分查詢或順序查詢確定待查節點在那一塊,然後在已確定的塊中進行順序查詢。演算法效率介於順序查詢和二分查詢之間。
常用演算法總結之查詢(一) 簡單查詢
查詢又稱檢索,是指在一批記錄中找出滿足指定條件的某一記錄的過程.在待查詢的資料結構中,每一條記錄一般包含多個資料域,查詢條件一般是給定其中的乙個或幾個域的值.這些域稱作關鍵字.關鍵字有主次之分,主關鍵字可以唯一標識資料結構中的乙個記錄,而次關鍵字則不能唯一區分.簡單查詢對資料的順序沒有要求,但查詢效...
查詢演算法總結
順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序查詢...
查詢演算法總結
順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序查詢...