一. 靜態查詢表
靜態查詢表是僅對查詢表進行查詢操作,而不能改變其中資料的線性表,可以是基於陣列的順序儲存或以線性鍊錶儲存。靜態查詢表主要有順序表、有序順序表和索引順序表三種。
1. 順序查詢
函式模型
int seqsearch(element list, int searchnum, int n)
2.折半查詢
2.1非遞迴折半查詢
int binsearch(element list , int searchnum, int n)
return -1;
}
2.2遞迴折半查詢int binsearch2(element list,int searchnum,int start,int end)
return -1;
}
3.索引表查詢int indexsequelsearch(indextype ls , elemtype s , int m, int n ,keytype key)
{ int i , j ,last;
i=0; //找到key所在塊的索引
while(i < m && key > ls[i].key)
i++;
// printf("i = %d",i);
if(i == m) //若該索引超過了最大索引值,則表明key大於s中的最大值,查詢失敗
return -1;
else
{ //key可能在第i塊中,找到第i塊在s中的起始下標賦值到j
j = ls[i].link;
//last標識搜尋的終點
if (i
查詢 資料結構
分類 資料結構與演算法 c c 2012 07 24 16 17 614人閱讀收藏 舉報幾種查詢演算法 順序查詢,折半查詢,分塊查詢,雜湊表 一 順序查詢的基本思想 從表的一端開始,向另一端逐個按給定值kx 與關鍵碼進行比較,若找到,查詢成功,並給出資料元素在表中的位置 若整個表檢測完,仍未找到與k...
資料結構 查詢
查詢 searching 也稱 檢索,查表,就是在大量的資訊集中尋找乙個特定的資訊元素。查詢就是根據 給定的關鍵字值,在 查詢表中確定乙個關鍵字等於給定的 記錄或資料元素。若存在這樣的資料元素,則稱查詢成功的,否則查詢不成功。查詢是許多重要的電腦程式中 最耗費時間的部分,查詢演算法的優劣密切關係著查...
資料結構 查詢
1.靜態查詢表 順序查詢 折半查詢 插值查詢 靜態最優查詢樹 靜態次優查詢樹 分塊查詢 插值查詢適合關鍵字均勻分布的有序表。如果有序表中各記錄的查詢概率不等,則使查詢效能達最佳的判定樹是其帶權路徑長度之和取最小值的二叉樹,即靜態最優查詢樹。構造靜態最優查詢樹的時間代價較高,一般以次優查詢樹代替。構造...