JS二分查詢

2022-05-26 09:18:12 字數 870 閱讀 2264

二分法查詢,也稱折半查詢,是一種在有序陣列中查詢特定元素的搜尋演算法。查詢過程可以分為以下步驟:

(1)首先,從有序陣列的中間的元素開始搜尋,如果該元素正好是目標元素(即要查詢的元素),則搜尋過程結束,否則進行下一步。

(2)如果目標元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半區域查詢,然後重複第一步的操作。

(3)如果某一步陣列為空,則表示找不到目標元素。

參考**:

// 非遞迴演算法

functionbinary_search(arr,key) else if(key > arr[mid])else if(key < arr[mid])else}};

var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];

var result = binary_search(arr,10);

alert(result); // 9 返回目標元素的索引值

// 遞迴演算法

functionbinary_search(arr,low,high,key)

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

if(arr[mid] == key)else if (arr[mid] > key)else if (arr[mid] < key)

};var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];

var result = binary_search(arr, 0, 13, 10);

alert(result); // 9 返回目標元素的索引值

js二分查詢

遞迴的時候是一層一層的return出來最後一次是限定條件 不再呼叫函式 如果這裡的fn 前面不寫return 則到最後一層一層返回到最上層時 沒有return函式fn結束掉 它還會繼續往下執行 即return 1 所以只要不是 num arr mid 都會返回 1 function searchnu...

js實現二分查詢

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

js實現二分查詢

二分查詢需要陣列是有序的,1 先從有序陣列的最中間元素開始查詢,如果和要查詢的元素相等,直接返回索引,若不相等則下一步。2 如果指定的元素大於或者小於中間元素,則在大於或小於的那一半區域內查詢,重複第一步直到找到目標元素。不使用遞迴 1 function search arr,key else if...