二分法小結

2021-08-20 19:01:53 字數 1129 閱讀 1803

乙個基礎模板:

註解:1、mid的表示式之所以不寫成mid=(start+end)/2;是因為start+end值可能溢位,而mid=start+(end-start)/2絕對沒有溢位的可能,這是一種嚴謹。

2、while裡面的條件是(start+1

二分法模板的四點要素

• start+1

• start + (end - start) / 2

• a[mid] ==,

• a[start] a[end] ? target

第一題:

第二題:

思路:找中間的數,與他相鄰的兩個數比較。如果midmid-1&&mid>mid+1,則直接返回.

public class solution else

return end;}}

第三題:復原翻轉陣列

思路:三部翻轉法。

如 4 5 1 2 3

第一步 4 5   1 2 3

第二步 5 4  3 2 1

第三步 1 2 3 4 5

注意:如果陣列裡面有重複數的話,getfirstindex就不能用二分.

二分法小結

二分法是乙個神奇的東西,弄了半天,總算知道怎樣合理的去使用了 常規的二分法正確的時候返回正確的下標或值,在找不到的情況下,返回比要查詢的數稍大點的數 已排序 要查詢的區間 2 6 7 15 cout 要查詢的數 4 16 cout a i 17 而另外的一種二分,可使返回正確的值,若無,則返回盡量小...

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