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