js實現二分搜尋法

2022-07-14 14:45:13 字數 755 閱讀 7633

二分搜尋法:

也稱折半搜尋,是一種在有序陣列中查詢特定元素的搜尋演算法。

實現步驟:

1. 首先從陣列中間開始查詢對比,若相等則找到,直接返回中間元素的索引。

2. 若查詢值小於中間值,則在小於中間值的那一部分執行步驟1的操作。

3. 若查詢值大於中間值,則在大於中間值的那一部分執行步驟1的操作。

4. 否則,返回結果為查不到,返回-1。

方法一:

function

binary_search1(arr, key)

else

if (key else

if (key >arr[mid])

else}}

var arr = [1,2,3,4,5,6,7,8];

console.log(binary_search1(arr, 3));

方法二:

function

binary_search2 (arr, low, high, key)

var mid = parseint((low + high) / 2);

if (key ===arr[mid])

else

if (key else

if (key >arr[mid])

}

var arr = [1,2,3,4,5,6,7,8];

console.log(binary_search2(arr, 0, 7, 3));

JS實現二分搜尋

二分查詢的前提為 陣列 有序。邏輯為 優先和陣列的中間元素比較,如果等於中間元素,則直接返回。如果不等於則取半繼續查詢。非遞迴實現 function binarysearch arr,target if target arr m else return false var arr 34,1,3,4,...

二分搜尋法

一 問題描述 給定n個元素,這些元素是有序的,從陣列中查詢特定的元素x。個人覺得二分法搜尋是分治法裡面最簡單的乙個搜尋演算法了,就是設定乙個下界low和上界high,然後再設乙個指標mid mid low high 2 然後隨著每次搜尋mid會在兩個區間之間 low,mid 1 和 mid 1,hi...

二分搜尋法

二分搜尋法,它充分利用了元素間的次序關係,採用分治策略,可在最壞的情況下用o log n 完成搜尋任務。它的基本思想是,將n個元素分成個數大致相同的兩半,取a n 2 與欲查詢的x作比較,如果x a n 2 則找到x,演算法運算終止。總結一下,二分搜尋需要注意的點有以下幾條 陣列一定記得要先排序!不...