學習筆記 二分法

2021-10-18 10:39:01 字數 764 閱讀 4030

問題引入:

給定乙個按照公升序排列的長度為n的整數陣列,詢問元素k,返回k在陣列中的起始位置和終止位置。

如果陣列中不存在該元素,則返回「-1 -1」。

例如:6 3

1 2 2 3 3 4

則應返回4 5

二分最重要的一步是區間劃分,即確定左區間表示什麼,右區間表示什麼,然後確定是輸出l還是r

對於本題,

求起始位置時,可以讓》=k的元素劃分到右區間,最後起始位置start=r

求終止位置時,可以讓<=k的元素劃分到左區間,最後終止位置end=l

const

int n =

1e5+5;

int n,a[n]

;int

main()

start=r;

l=0,r=n+1;

while

(l+1

!=r)

end=l;

if(start<=end) cout<" "

<<

" "<<-1

}

浮點數的二分:

給定乙個浮點數x(-10000<=x<=10000),求它的三次方根。(結果保留6位小數)

int

main()

printf

("%.6lf\n"

,l);

return0;

}

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

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...