第十四周 專案一 1 折半查詢

2021-07-25 05:49:25 字數 2129 閱讀 6539

/*問題及** 

*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...