二分查詢法

2021-09-28 11:42:48 字數 1310 閱讀 1269

二分查詢法模板

前提條件是乙個排序陣列,然後給定兩個陣列的下標left right

每次根據 nums[mid] 和 target 之間的大小進行判斷,相等後進行相關邏輯操作,nums[mid] < target 則 left 右移,nums[mid] > target 則 right 左移,最後返回相關返回值。

class solution

else

if(nums[mid]

< target)

else

}// 相關返回值

return0;

}}

相關例題

力扣(leetcode) 35 搜尋插入位置

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

示例 1:

輸入: [1,3,5,6], 5

輸出: 2

示例 2:

輸入: [1,3,5,6], 2

輸出: 1

示例 3:

輸入: [1,3,5,6], 7

輸出: 4

示例 4:

輸入: [1,3,5,6], 0

輸出: 0

題解1 整體思路和普通的二分查詢幾乎沒有區別,先設定左側下標 left 和右側下標 right,再計算中間下標 mid

2 每次根據 nums[mid] 和 target 之間的大小進行判斷,相等則直接返回下標,nums[mid] < target 則 left 右移,nums[mid] > target 則 right 左移

查詢結束如果沒有相等值則返回 left,該值為插入位置

3 時間複雜度:o(logn)o(logn)

public class demo35

public void show()

; int target =5;

int arrs = this.

searchinsert

(nums,target)

; system.out.

println

(arrs);}

public int searchinsert

(int[

] nums, int target)

else

if(nums[mid]

else

}return left;

}}

二分查詢法

二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...

二分查詢法

有序陣列中的find 方法 public int find long serchkey int lowerbound 0 int upperbound nelems 1 while true curin lowerbound upperbound 2 if a curin serchkey retu...

二分查詢法

演算法基本思想 二分查詢演算法的前置條件是,乙個已經排序好的序列 假設這個序列是公升序排列的 這樣在查詢所要查詢的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查詢,如果小於這個元素,就在當前序列的前半部分繼續查詢,直到找到相同的元素,或者所查詢的序列範圍為空為止...