二分查詢函式的使用

Wuko666發表於2020-11-25

二分查詢函式的使用

lower_bound( )和upper_bound( )都是利用二分查詢的方法在一個排好序的陣列中進行查詢的。

在從小到大的排序陣列中,

lower_bound( begin,end,num):從陣列的begin位置到end-1位置二分查詢第一個大於或等於num的數字,找到返回該數字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數字在陣列中的下標。

upper_bound( begin,end,num):從陣列的begin位置到end-1位置二分查詢第一個大於num的數字,找到返回該數字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數字在陣列中的下標。

在從大到小的排序陣列中,過載lower_bound()和upper_bound()

lower_bound( begin,end,num,greater() ):從陣列的begin位置到end-1位置二分查詢第一個小於或等於num的數字,找到返回該數字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數字在陣列中的下標。

upper_bound( begin,end,num,greater() ):從陣列的begin位置到end-1位置二分查詢第一個小於num的數字,找到返回該數字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數字在陣列中的下標。## 二分查詢函式的使用

相關文章