查詢 順序查詢

2021-08-29 02:12:30 字數 1235 閱讀 4558

查詢:根據給定的某個值,在查詢表中確定乙個其關鍵字等於給定值的記錄或資料元素。若表中存在這樣的乙個記錄,則稱查詢是成功的,此時查詢的結果為給出整個記錄的資訊,或指示該記錄在查詢表中的位置。若表中不存在關鍵字等於給定值的記錄,則稱查詢不成功,此時查詢的結果可給出乙個空記錄或者空指標。

本篇文章討論在靜態查詢表中的查詢操作-順序查詢.

靜態查詢表:一旦建立,主要是查詢,很少或者不做修改(如插入和刪除)。

輸入:表的長度,表中各個元素。要查詢的表元素。

輸出:要查詢的表元素的位置(1<=pos=length(st)).

執行結果:

順序查詢的查詢過程為:從前向後逐一比較,一旦找到則返回。

輔助巨集:

#define ok 1

#define error 0

#define true 1

#define false 0

#define overflow -1

#define underflow -2

#define null 0

#define table_init_size 100

#define tableincrement 10

typedef int status;

typedef int elemtype;

typedef int keytype;

首先是靜態儲存表的儲存結構定義:

//順序表儲存結構定義

typedef structsstable;

演算法實現:

int locateelem(sstable st,elemtype e)
查詢效能分析-平均查詢長度asl(平均比較次數)

記第i個元素被查詢的概率為pi,則可以計算

asl=n*p1 +(n-1)*p2 +...1*pn+(n+1)*p0

通常所查詢的元素均在st中,此時p0=0;

若查詢保證成功且各元素機率同1/n,則

asl=(n+1)/2;

若成功與否各50%,且各元素被找到的概率同1/2n 則

asl = (n+1)/4 + (n+1)/2 = 3*(n+1)/4;

概率越大越靠後則asl越小,事先不知道概率可動態調整。 

查詢 順序查詢

順序查詢的思路 從資料的第乙個元素開始,依次將掃瞄到的關鍵字和給定值key比較。若當前掃瞄到的關鍵字和key相等,則查詢成功 若掃瞄結束還沒有找到和key相等的元素,就表示查詢給定的值不在表中。時間複雜度 o n 優點 1.演算法簡單 2.對錶結構沒有任何要求,用順序表或者用鍊錶都可以。3.表中元素...

查詢 順序查詢

查詢表 由同一種型別的資料元素構成的集合 jing態查詢表 只做查詢操作的查詢表 dong態查詢表 在查詢的過程中,還可以進行插入和刪除等的操作。關鍵字 資料元素中的某個資料項的值 主關鍵字 可以唯一表示乙個記錄的關鍵字 次關鍵字 可以表示多個紀錄的關鍵字 include using namespa...

查詢 順序查詢

順序查詢 定義 順序查詢就是在檔案的關鍵字集合key 1,2,n 中找出與給定的關鍵字key相等的檔案記錄。步驟 1.從檔案的第乙個記錄開始,將每個記錄的關鍵字與給定的關鍵字key進行比較 2.如果查詢到某個記錄的關鍵字等於key,則查詢成功,返回該記錄的位址 如果所有關鍵字都與key進行了比較,但...