基本的二分查詢

2021-08-05 23:16:32 字數 720 閱讀 6245

二分查詢有兩個庫函式

lower_bound和upper_bound
iint a[10]

=;int k =

(lower_bound

(a,a+10,

3)- a)

;//返回大於等於3的第乙個數的位置

int f =

(upper_bound

(a,a+10,

4)- a)

;//返回大於4的第乙個數的位置。

這裡我們也可以自己實現二分查詢,如下

#include#include#include#includeusing namespace std;

int main(void);

int l = 1,r = 9;

int find = 4;

while(r - l > 1)

printf("%d\n",r);

//這裡是返回這個數的最後乙個位置7,如果這個序列沒有這個數,得到的是剛好比這個數大的第乙個位置。

l = 1,r = 9;

while(r - l > 1)

//這裡得到的是這個數第一次出現的位置4,如果這個序列沒有這個數,得到的是剛好比這個數小的最後乙個位置。

printf("%d\n",l);

return 0;

}

基本查詢與二分查詢

public class demo01 int index getindexbyele arr,50 system.out.println index private static int getindexbyele int arr,int ele return 1 如果找不到則返回 1 二分查詢思...

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

基本查詢演算法 二分查詢 總結

二分查詢是一種非常簡單易懂的快速查詢演算法,時間複雜度為o logn 這是相當快的了。利用二分思想,即便猜乙個 0 到 999 的數字,最多也只要 10 次就能猜中。基本形式 在有序不重複元素中尋找指定值的位置,不存在返回 1 intbsearch vector int nums,int val e...