DS靜態查詢 順序 二分 索引

2022-09-11 12:21:08 字數 691 閱讀 1717

靜態查詢

靜態表是只執行查詢操作,而不執行插入、刪除等操作的表。

現在常說的有五大查詢方法:順序查詢、分塊查詢、索引查詢、樹查詢、雜湊查詢。

後兩種之前寫過了二叉查詢樹和雜湊表,現在回顧前面三種,它們都屬於順序表查詢。

1.順序查詢

思路最簡單的查詢,也就是遍歷一遍看看有沒有相等的元素。

可以設定乙個哨兵,這樣全都不相等也可以在哨兵那裡返回,不必設邊界條件。

int

find(t key)

}

2.二分查詢

二分查詢的物件必須是有序表,以遞增序列為例,我們先找到中間的那個元素,若是該元素比key值小,則下一步只需要查詢左邊的,否則下一步只需要查詢右邊的。

顯然我們可以發現,分塊查詢的比較次數要小於順序查詢。

int

find_half(t key)

}return0;

}

3.索引查詢

索引查詢要求將表分成好幾塊。

塊內無序,塊間有序。

比如第一塊的最大值一定小於第二塊,第三塊的元素一定大於第二塊。

這時候查詢就只需要對合適的塊進行順序查詢,比較次數根據分的塊的數量而定。

(**於網路)

順序查詢 二分查詢 索引查詢

1.查詢技術的分類。如下圖 2.什麼是順序查詢呢?無序表 順序查詢的原理很簡單,就是遍歷整個列表,逐個進行記錄的關鍵字與給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄。如果直到最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢失敗。時間複雜度是o n 3....

DS 005 順序表 二分查詢

題目 線性表 a1,a2,a3,an 中元素遞增有序且按順序儲存在計算機中。要求設計乙個演算法完成用最少時間在表中查詢值為x的元素,若找到將其與後繼元素位置相交換,若找不到將其插入表中並使表中元素仍遞增有序。演算法思想 有序順序表,可以用二分查詢 折半查詢 int binarysearch elem...

靜態查詢方法(順序查詢與二分查詢)

靜態查詢的幾種方法 include define maxsize 20 typedef struct lnode list struct lnode 順序查詢 sequential search 採用了建立哨兵的查詢思想,最好查詢複雜度o 1 最壞為o n 平均查詢複雜度為o n 2 int seq...