二分搜尋基礎演算法

2022-06-22 06:57:10 字數 759 閱讀 8164

分治演算法基本思想:將乙個規模為 n 的問題分解為 k 個規模較小的子問題,這些子問題相互獨立且與原問題相同;

給定已排好序的 n 個元素 array[0:n-1],現要在這 n  個元素找出特定元素x;

首先較容易想到的是用順序搜尋方法,逐個比較 array[0:n-1] 中元素,直至找出元素 x 或搜尋整個陣列後確定 num 不在其中。這個方法沒有很好的利用 n 個元素排好序這個有利條件,因此在最壞的情況下,順序搜尋方法需要 o(n) 次比較  

二分搜尋演算法充分利用了元素間的次序關係,採用分治策略,可在最壞的情況下用 o(logn) 時間完成搜尋任務;

public

class

binarysearch ;

/*** 二分查詢

*/public

static

integer binarysearch(integer num)

integer left = 0;

integer right = array.length - 1;

while (left <=right)

if (array[mid] >num)

if (array[mid] }

return -1;

}public

static

void

main(string args)

}

每天進步一點,繼續前行......

演算法 二分搜尋

思路 首先從陣列中間的數把陣列分成兩部分,如果查詢的數比中間的數大,說明接下來需要查詢右邊的部分,令中間的的下標 1為下一次開始查詢的開始位置,再從low到high之間查詢,一直迴圈。root bogon code cat erfen.c include int work int x,int a,i...

基礎演算法 二分

二分模板 bool check int x 檢查x是否滿足某種性質 區間 l,r 被劃分成 l,mid 和 mid 1,r 時使用 int bsearch 1 int l,int r return l 區間 l,r 被劃分成 l,mid 1 和 mid,r 時使用 int bsearch 2 int...

二分搜尋演算法

今天我勉強搞懂了二分查詢演算法,我覺得很有收穫,這是個不錯的演算法,希望還不知道 不懂二分演算法的朋友能看看!二分查詢 二分查詢的前提是陣列一定是有序的 傳入乙個陣列 t 傳入乙個查詢元素 t key 返回查詢結果 class myutil else if key.compareto x mid 0...