/*問題及**
*all right reserved.
*檔名稱:驗證演算法.cpp
*版本號;v1.0
*問題描述:
認真閱讀並驗證折半查詢演算法。
*輸入描述:無
*程式輸出:根據要求輸出
*/
折半**:
#include #define maxl 100
typedef int keytype;
typedef char infotype[10];
typedef struct
nodetype;
typedef nodetype seqlist[maxl]; //順序表型別
int binsearch(seqlist r,int n,keytype k)
return 0;
}
int main()
,x=90,y=47,z=100;
for (i=0; i0)
printf("序列中第 %d 個是要查詢的 %d\n",result, x);
else
printf("%d沒有找到!\n",x);
result = binsearch(r,n,y);
if(result>0)
printf("序列中第 %d 個是要查詢的 %d\n",result, y);
else
printf("%d木有找到!\n",y);
result = binsearch(r,n,z);
if(result>0)
printf("序列中第 %d 個是要查詢的 %d\n",result, z);
else
printf("%d木有找到!\n",z);
return 0;
}
執行結果:
遞迴折半:
#include #define maxl 100
typedef int keytype;
typedef char infotype[10];
typedef struct
nodetype;
typedef nodetype seqlist[maxl]; //順序表型別
int binsearch1(seqlist r,int low,int high,keytype k)
else
return 0;
}
int main()
,x=90,y=47,z=100;
for (i=0; i0)
printf("序列中第 %d 個是要查詢的 %d\n",result, x);
else
printf("%d木有找到!\n",x);
result = binsearch1(r,0,n-1,y);
if(result>0)
printf("序列中第 %d 個是要查詢的 %d\n",result, y);
else
printf("%d木有找到!\n",y);
result = binsearch1(r,0,n-1,z);
if(result>0)
printf("序列中第 %d 個是要查詢的 %d\n",result, z);
else
printf("%d木有找到!\n",z);
return 0;
}
執行結果:
知識點總結:
折半查詢的非遞迴與遞迴演算法
心得體會:
它的思想就是二分法,就和數學中的二分查詢法一樣,然後它的遞迴演算法看著明了,很容易理解但是非遞迴也挺容易理解的
第十四周專案1 折半查詢
檔名稱 專案1.cbp 作 者 孫欽達 完成日期 2015年12月14日 版 本 號 v1.0 問題描述 折半查詢 輸入描述 無 程式輸出 查詢後的內容 include define maxl 100 typedef int keytype typedef char infotype 10 type...
第十四周 專案一 (1)折半查詢
問題描述及 煙台大學計控學院 作 者 邊朔 完成日期 2016年12月1日 問題描述 請用有序表作為測試序列,分別對查詢90 47 100進行測試 遞迴 include define maxl 100 typedef int keytype typedef char infotype 10 type...
第十四周 專案1 1 1 折半查詢
檔名稱 main.cpp 完成日期 2015年11月30日 版本號 vc 6.0 問題描述 折半查詢 輸入描述 程式輸出 include define maxl 100 typedef int keytype typedef char infotype 10 typedef struct nodet...