二分法的溢位問題

2021-09-25 17:48:49 字數 408 閱讀 5994

乙個標準的二分法查詢

int guess(int num);//返回數字大小

int guessnumber(int n)

else

pick=left+(right-left)/2;

flag=guess(pick);

}return pick;

}};

每次未找到目標數字時,都要修改新的查詢區間,然後查詢這個區間的中值,值得注意的是,(left+right)/2這種寫法在一開始是很容易溢位的,例如當left和right都是int,兩個值的初始值都超過int限定大小的一半,那麼left+right就會發生溢位,所以應該用left+(right-left)/2來防止求中值時候的溢位。

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

砍樹問題 二分法

題目描述森林裡有n棵高高低低的樹木,伐木工阿強接到老闆的通知,需要k段等長的木材,阿強為了能掙更多錢,所以砍的木材要盡可能的長,所以引出乙個問題,阿強最長能砍到多長的木材。輸入第一行輸入n和k,n表示n棵樹木,k表示老闆需要k段木材。1 n 100,1 k 100 第二行輸入n個數,第i個數表示第i...