二分查詢有兩個庫函式
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...