1、折半查詢
思想:假設表中元素按照公升序排列,將表中間位置元素與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置元素將表分為前後兩個子表,如果中間元素大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表,直到找到查詢關鍵字即為查詢成功。
優點:比較次數少,查詢速度快,平均效能好;
缺點:必須為有序表,插入刪除困難;
適用於不經常變動而查詢頻繁的有序列表。
**:
#include int bisearch(int target, int
array, int
len)
else
if (array[mid] < target)
else
if (array[mid] > target)
}return -1;
} int main()
; int location = bisearch(8, array, 8);
if (location > -1)
else
return 0;
}
C語言 查詢演算法
簡單查詢 順序查詢 從序列起始位置開始,逐個將序列中的元素與所要查詢的資料進行比較,有則查詢成功,如果查詢到序列最後乙個元素也沒有匹配,則查詢失敗 int ordersearch int a,int n,int data 二分查詢 二分查詢也稱折半查詢,其優點是速度快,缺點是要求資料必須是有序列序列...
lfu演算法實現c語言 雜湊查詢演算法(C語言實現)
上一節介紹了有關雜湊表及其構造過程的相關知識,本節將介紹如何利用雜湊表實現查詢操作。在雜湊表中進行查詢的操作同雜湊表的構建過程類似,其具體實現思路為 對於給定的關鍵字 k,將其帶入雜湊函式中,求得與該關鍵字對應的資料的雜湊位址,如果該位址中沒有資料,則證明該查詢表中沒有儲存該資料,查詢失敗 如果雜湊...
演算法 c語言 三大查詢演算法,C語言詳細版
查詢也可稱檢索,是在大量的資料元素中找到某個特定的資料元素而進行的工作,查詢是一種操作。順序查詢也稱為線性查詢,屬於無序查詢演算法。從資料結構線形表的一端開始,順序掃瞄,依次將掃瞄到的結點關鍵字與給定值k相比較,若相等則表示查詢成功 若掃瞄結束仍沒有找到關鍵字等於posdata的結點,表示查詢失敗。...