順序表的查詢

2021-07-11 23:43:35 字數 1293 閱讀 5672

查詢的定義是:對給定的乙個關鍵字的值,在資料表中搜尋出乙個關鍵字的值等於該值的記錄或者元素,若找到了指定的元素,則稱為查詢成功,通常是返回該元素在查詢表中的位置;若不存在指定的元素,則返回乙個表示失敗的值。

查詢演算法根據儲存資料的結構不同可以分為以下三種:順序表,也就是陣列、樹表、雜湊表等

其中,順序表根據資料元素是否按順序排序又可以分為:簡單順序查詢(陣列元素無序)、二分查詢(陣列有序)

簡單順序查詢:

就是從下表1開始依次比較待查詢的元素和陣列內元素是否相等,若相等,就返回該元素的下表,否則就返回0;

這裡將待查詢的元素放在b[0]的位置,是為了避免越界的判斷,這樣可以節省一半的時間

#include using namespace std;

const int max = 10;

int seq_search(int b,int num,int length)

int main();

int length = sizeof(a)/sizeof(int);

int b[max];

for(int i=0;i<=length;i++)

int position = seq_search(b,num,length);

cout<

1.非遞迴寫法

設定三個標號,low,mid,high,發現如果mid對應的值等於待查詢的元素的值,返回mid+1;若待查詢的元素小於mid對應的值,則從左邊開始找;否則從右邊開始找

#include using namespace std;

int bin_search(int *a,int num,int length)

return -1;

}int main(); //供查詢的有序表

int length = sizeof(a)/sizeof(int);

int num; //待查詢的元素

cin>>num;

int position = bin_search(a,num,length);

cout<

#include using namespace std;

int bin_search(int *a,int num,int low,int high)

}int main(); //供查詢的有序表

int length = sizeof(a)/sizeof(int);

int num; //待查詢的元素

cin>>num;

int position = bin_search(a,num,0,length-1);

cout<

順序表的查詢

內容 1 隨機產生n個兩位整數,構造乙個查詢表。2 輸入乙個整數,利用順序查詢法在查詢表中查詢該整數是否存在。若查詢成功,返回該整數在表中的位置 查詢失敗則返回0。3 對查詢表按遞增順序進行排序。4 輸入乙個整數,利用折半查詢法在有序表中查詢該整數是否存在。若查詢成功,返回該整數在表中的位置 查詢失...

順序表的查詢

1 隨機產生n個兩位整數,構造乙個查詢表。2 輸入乙個整數,利用順序查詢法在查詢表中查詢該整數是否存在。若查詢成功,返回該整數在表中的位置 查詢失敗則返回0。3 對查詢表按遞增順序進行排序。4 輸入乙個整數,利用折半查詢法在有序表中查詢該整數是否存在。若查詢成功,返回該整數在表中的位置 查詢失敗則返...

順序表的查詢

1.對長度為4的順序表進行查詢,若第乙個元素的概率為1 8,第二個元素的概率為1 4,第三個元素的概率為3 8,第四個元素的概率為1 4,則查詢任乙個元素的平均查詢長度為 a 11 8 b 7 4 c 9 4 d 11 4 答案 c 解析 對順序表查詢,asl 代入題目得 asl 4 1 8 3 1...