折半查詢法的遞迴與非遞迴演算法

2021-07-03 07:40:51 字數 685 閱讀 5446

#include "stdio.h"

int bisearch(int a,int low,int high,int k);

int main()

; printf("請輸入你要查詢的數\n");

scanf("%d",&s);

printf("待查詢的數 %d\n",s);

pos=bisearch(a,0,9,s);//引數傳遞弄錯了,k和s。

if(pos==-1)

printf("沒有找到該數\n");

else

printf("%d在陣列中位置是%d\n",s,pos);

return 0;

}/*int bisearch(int a,int low,int high,int k)

{ int mid;

while(low<=high)

{ mid=(low+high)/2;

if(k==a[mid])return mid;

else if(khigh)

return -1;

else

{ mid=(low+high)/2;

if(a[mid]==k)

return mid;

if(a[mid]

函式呼叫引數之間關係還是把握不是太好。

同時要分辨好陣列下標值和陣列值的區別。

java演算法 折半查詢 遞迴演算法和非遞迴演算法

package ceshi public class bisearch param args 折半查詢 當查詢表是有序表時,可採用折半查詢 基本思想 在有序表中,取中間元素作為比較物件,若給定值k與中間記錄關鍵字相等,則查詢成功 若給定值k小於中間記錄的關鍵字,則在表的左半區繼續查詢 若給定值k大於...

折半查詢遞迴和非遞迴實現

折半查詢,在此做一總結,遞迴和非遞迴實現如下所示 1 data增序排列3 非遞迴折半查詢 4int binarysearch int data,int keyvalue,int len 15return 1 16 1718 遞迴折半查詢 19int binarysearchrecursion int...

折半查詢法(遞迴二分演算法)(非遞迴二分演算法)

include include include define max 10001 using namespace std int a max key intsearch int bot,int top 傳過陣列下標來,恰好可以呼叫全域性變數a max 如果傳過來陣列,位置變動不如下標容易 else ...