順序查詢過程:從表中的最後乙個記錄開始,逐個進行記錄的關鍵字與給定值進行比較,若某個記錄的關鍵字與給定值相等,則查詢成功,找到所查的記錄;反之,若直到第乙個記錄,其關鍵字和給定值比較都不相等,則表明表中沒有所查的記錄,查詢失敗。
演算法描述為
int search(int d,int a,int n)
二分查詢又稱折半查詢,它是一種效率較高的查詢方法。
【二分查詢要求】:1.必須採用順序儲存結構2.必須按關鍵字大小有序排列。
【優缺點】折半查詢法的優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。
【演算法思想】首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。
重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。
【演算法複雜度】假設其陣列長度為n,其演算法複雜度為o(log(n))
下面提供一段二分查詢實現的偽**:
binarysearch(max,min,des)
mid-des then
max=mid-1
else
min=mid+1
return max
#include #include #include #include #define maxsize 20
#define ok 1
#define error 0
#define true 1
#define false 0
using namespace std;
typedef int elemtype;
typedef int status;
typedef int keytype;
typedef structredtype;
typedef struct sstable;
void createlist(sstable &l,keytype key,int n)
//順序查詢
int search_seq(sstable st,keytype key)
//折半查詢
int intsearch_bin(sstable st,keytype key)
資料結構 嚴蔚敏版 緒論
資料 所有能被輸入到計算機中,且能被計算機處理的符號的集合。資料元素 資料中的乙個 個體 資料結構中討論的基本單位。資料結構 帶結構的資料元素的集合。資料的邏輯結構可以分為 1.集合結構 資料元素關係 結構之間的元素同屬於乙個集合體 2.線性結構 資料元素關係 結構之間的元素存在一對一的關係 3.樹...
資料結構 嚴蔚敏
最近一直想找一本純資料結構的書來學習,找來找去都沒有找到一本合適的書籍,相比之下國內的書籍之中,嚴蔚敏和吳偉民的還算是經典版了,很多國內其他資料結構教材都參考這本書的。但缺點是很多都是偽 對程式設計初學者來說有一些難度,甚至有些考研的同學來看這本書有很多還看不懂,並且裡面也有些容易迷惑人的地方。出於...
資料結構(嚴蔚敏)
說起為什麼重新拿起這本書,著實非常慚愧。是因為面試的時候,第乙個面試官面試完專案之後。第二面試官說我們就當聊聊天,考考資料結構,演算法就好了。結果以乙個問題就把我難住了,這個問題是 雜湊表是什麼?所以我打算花兩天的時間重新把這本書看一遍,並做下筆記,這次我一定會記住。目前,計算機已深入到社會生活的各...