查詢的定義是:對給定的乙個關鍵字的值,在資料表中搜尋出乙個關鍵字的值等於該值的記錄或者元素,若找到了指定的元素,則稱為查詢成功,通常是返回該元素在查詢表中的位置;若不存在指定的元素,則返回乙個表示失敗的值。
查詢演算法根據儲存資料的結構不同可以分為以下三種:順序表,也就是陣列、樹表、雜湊表等
其中,順序表根據資料元素是否按順序排序又可以分為:簡單順序查詢(陣列元素無序)、二分查詢(陣列有序)
簡單順序查詢:
就是從下表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...