二分查詢模板

2021-10-01 08:24:33 字數 1014 閱讀 1016

二分查詢模板總共有兩個

將區間分為[l,

mid]

[l,mid]

[l,mid

],[mid

+1,r

][mid+1, r]

[mid+1

,r]時,**如下

while

(l < r)

else

}

將區間分為[l,

mid−

1]

[l,mid-1]

[l,mid

−1],[mi

d,r]

[mid, r]

[mid,r

]時,**如下

while

(l < r)

else

}

對於版本一,區間會一直向左劃分,直到找到最小的ind

ex

index

inde

x使得a[i

ndex

]>=x

a[index]>=x

a[inde

x]>=x

,若a [l

]!=x

a[l]!=x

a[l]!=

x,則無解。

對於版本二,區間會一直向右劃分,直到找到最大的ind

ex

index

inde

x使得a[i

ndex

]<=x

a[index]<=x

a[inde

x]<=x

,若a [l

]!=x

a[l]!=x

a[l]!=

x,則無解。

乙個題目,如果乙個區間具有單調性質,那麼一定可以二分,但是如果說這道題目沒有單調性質,而是具有某種區間性質的話,我們同樣可以使用二分。​ ——yxc總

下面看一道acwing的題目acwing789.數的範圍

二分查詢模板

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。演算法思路 假設目標值在閉區間 l,r 中,每次將區間長度縮小一半,當l r時,我們就找到了目標值。模板一當區間 l,r 的更新操作是r mid l mid 1 時,計算mid時不需要加1。int bsearch 1 in...

二分查詢模板

例如陣列中查詢乙個數 二分查詢的前提是整個陣列是有序的 模板 int a n int l 0,r n 1 int mid,key while l r 另外還有一些二分查詢函式 a.函式模板 binary search arr,arr size indx c.函式功能 在陣列中以二分法檢索的方式查詢,...

模板 二分查詢

題目描述 給定乙個包含n個整數的數列和包含m個不重複整數的數列。輸出既包含於也包含於的整數的個數k。輸入格式 輸入共4行 第1行僅包含乙個正整數n 第2行包含n個整數ai,數字之間用乙個空格分隔 第3行僅包含乙個正整數m 第4行包含m個整數bi,數字之間用乙個空格分隔。輸出格式 輸出僅包含乙個整數k...