14 二分查詢

2021-08-15 01:57:35 字數 384 閱讀 5780

給定乙個排序的整數陣列(公升序)和乙個要查詢的整數target,用o(logn)的時間查詢到target第一次出現的下標(從0開始),如果target不存在於陣列中,返回-1。 樣例

在陣列[1, 2, 3, 3, 4, 5, 10]中二分查詢3,返回2

思路 定三個座標,頭座標,尾座標,中間座標,每次判斷要查詢的數和中間座標的數比較大小,如果要找的數大於中間數,就讓尾座標=中間數,同時讓中間數=(頭座標+尾座標)/2;直到頭座標和尾座標相等。

int binarysearch(vector&a, int target) else if(target

14 二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例 在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。思路 1 target array mid 時,不能直接返回...

14 二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。如果陣列中的整數個數超過了2 32,你的演算法是否會出錯?思路 剛...

14 二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例 1 輸入 1,4,4,5,7,7,8,9,9,10 1 輸出 0 樣例解釋 第一次出現在第0個位置。樣例 2 輸入 1,...