第14周 專案1 驗證演算法 分塊查詢演算法

2021-07-08 11:55:34 字數 1392 閱讀 5839

問題及**:

/*

*檔名稱:main.cpp

*作 者:徐群壯

*完成日期:2015.11.30

*版 本 號:v1.0

* 45,26,34,29,35,26,36,55,98,56, 74,61,90,80,96,127,158,116,114,128,113,

115,102,184,211,243,188,187,218,195,210,279,307,492,452,408,361,421,399,

856,523,704,703,697,535,534,739(共n=56個資料,每塊資料個數s=8)作為資料表,

自行構造索引表,分別對查詢61、739、200進行測試。

*/

#include #define maxl 100    //資料表的最大長度

#define maxi 20 //索引表的最大長度

typedef int keytype;

typedef char infotype[10];

typedef struct

nodetype;

typedef nodetype seqlist[maxl]; //順序表型別

typedef struct

idxtype;

typedef idxtype idx[maxi]; //索引表型別

int idxsearch(idx i,int m,seqlist r,int n,keytype k)

i=i[high+1].link;

while (i<=i[high+1].link+b-1 && r[i].key!=k) i++;

if (i<=i[high+1].link+b-1)

return i+1;

else

return 0;

}int main()

,,,,};

keytype a= ;

keytype x=85;

for (i=0; i

r[i].key=a[i];

j=idxsearch(i,m,r,n,x);

if (j!=0)

printf("%d是第%d個資料\n",x,j);

else

printf("未找到%d\n",x);

return 0;

}

執行結果:

知識點總結及學習心得:

分塊查詢實際是兩次查詢的過程,索引表是有序表,可以採用折半查詢或者順序查詢。而查詢過程的平均長度是兩次平均查詢的長度之和。

第14周專案1 (2)驗證分塊查詢演算法

問題 檔名稱 專案1 2.cbp 作 者 王聰 完成日期 2015年12月2日 版 本 號 v1.0 問題描述 驗證分塊查詢演算法 輸入描述 無 程式輸出 測試資料 include define maxl 100 資料表的最大長度 define maxi 20 索引表的最大長度 typedef in...

第14周專案1 (2)驗證分塊查詢演算法

all rights reserved.檔名稱 專案1 2.cbp 作 者 孫翰文 完成日期 2015年12月4日 版 本 號 v1.0 問題描述 驗證分塊查詢演算法 輸入描述 無 程式輸出 測試資料 define maxl 100 資料表的最大長度 define maxi 20 索引表的最大長度 ...

第14周專案1 (2)驗證分塊查詢演算法

問題及 檔名稱 1.cpp 作 者 王修文 完成日期 2016年12月1日 版 本 號 v1.0 輸入描述 無 程式輸出 測試資料 include define maxl 100 資料表的最大長度 define maxi 20 索引表的最大長度 typedef int keytype typedef...