簡述二分查詢演算法原理

2021-10-08 07:29:09 字數 564 閱讀 3143

舉例:當需要查詢乙個公升序陣列中是否包含某個數時,可以使用二分查詢演算法(要求陣列必須有序),就是將陣列的中間值與該數比較,若該數大於中間值,則表明在該陣列中間值的右側,反之亦然,這個時候,將改變起始值或末尾值在將該數,與重新選定的區域中間值判斷,依次類推,直到結束

/**

* @ author: zhangyu

* @ date: 2020/7/20

* @ description:二分查詢前提條件,陣列要有序

*/public

class

test_ef

;int start=0;

//起始值

int end=a.length-1;

//末尾值

while

(true

)int mid=

(start+end)/2

;//取中間值位置

if(a[mid]

==num)

else

if(a[mid]

else}}

}

二分查詢演算法原理和實現

二分查詢是一種比較高效的搜尋演算法,是一種可以在有序陣列中搜尋到特定元素的演算法。例如,我們要在陣列中搜尋4 還是先找到陣列的中間位置,這次因為是偶數,我們就取1吧 這裡是按照自己取中間位置的演算法實際去取 4比1小,那麼要往右邊陣列搜尋,右邊陣列即為 那麼,陣列只有乙個元素,那麼中間位置肯定就是自...

查詢演算法 二分查詢

利用二分查詢演算法查詢某乙個元素,前提條件是該被查詢的元素是乙個已經有序的陣列。二分查詢的思想是將陣列元素的最高位 high 和最低位 low 進行標記,取陣列元素的中間 mid 和和要查詢的值 key 進行比較,如果目標值比中間值要大,則將最低位設定為mid 1,繼續進行查詢。如果目標值小於中間值...

查詢演算法 二分查詢

二分查詢的思路是很簡單的,前提是這組資料是有順序的。思路是從中間找乙個數,判斷大小,如果數比中間數大,說明在中間數到結尾的數中,如果小於,則說明在開始和中間數之間,經過多次相同操作,就可以得到我們想查詢的數時間複雜度就是 o logn 非遞迴的實現 const testarr let i 0whil...