9 二分查詢

2021-10-20 18:18:02 字數 549 閱讀 7071

9.二分查詢

題目描述

請實現有重複數字的公升序陣列的二分查詢。

輸出在陣列中第乙個大於等於查詢值的位置,如果陣列中不存在這樣的數(指不存在大於等於查詢值的數),則輸出陣列長度加一。

輸入

5,4,[1,2,4,4,5]
返回值

3
說明

輸出位置是從1開始算的
分析

1.主要演算法思想為二分查詢思想,也就是折半查詢思想。

2.本題目的主要難度在於對題目的題意理解,n是陣列的長度,v是查詢的目標,a是目標陣列

3.首先我們要明確一點,二分查詢只適用於有序的陣列中,其次在進行對題目本身的操作

4.確定乙個中間位置,然後與目標值v進行比較,在重複此操作即可

**實現

public  int upper_bound_ (int n, int v, int a) else

} return n+1;

}}

迭代二分查詢二分查詢

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

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

二分查詢及變種二分查詢

二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...