JS實現二分搜尋

2021-10-01 02:59:46 字數 618 閱讀 8162

二分查詢的前提為:陣列、有序。邏輯為:優先和陣列的中間元素比較,如果等於中間元素,則直接返回。如果不等於則取半繼續查詢。

非遞迴實現

function binarysearch(arr, target)

if(target > arr[m])else

}return false;

}var arr = [-34, 1, 3, 4, 5, 8, 34, 45, 65, 87];

binarysearch(arr,4);

遞迴版本

function binarysearch (arr, target, start, end) 

if (start == undefined)

var m = math.floor((start + end) / 2)

if (arr[m] == target)

if (start >= end)

if (target < arr[m]) else

}var arr = [-34, 1, 3, 4, 5, 8, 34, 45, 65, 87]

binarysearch(arr, 4)

js實現二分搜尋法

二分搜尋法 也稱折半搜尋,是一種在有序陣列中查詢特定元素的搜尋演算法。實現步驟 1.首先從陣列中間開始查詢對比,若相等則找到,直接返回中間元素的索引。2.若查詢值小於中間值,則在小於中間值的那一部分執行步驟1的操作。3.若查詢值大於中間值,則在大於中間值的那一部分執行步驟1的操作。4.否則,返回結果...

二分搜尋 C 實現

超詳細講解 給大佬膝蓋 源 include using namespace std void print arry int a int n cout int binarysearch int a int x,int n 輸入陣列 待查詢元素x,陣列大小n return 1 int main cout...

js實現二分查詢

二分查詢,也稱為折半查詢,是指在有序的陣列裡找出指定的值,返回該值在陣列中的索引。查詢步驟如下 1 從有序陣列的最中間元素開始查詢,如果該元素正好是指定查詢的值,則查詢過程結束。否則進行下一步 2 如果指定要查詢的元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半區域查詢,然後重複第一步的...