この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript コーディング問題
37. Binary Search (unique)を実装する
function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left <= right) { const midIndex = Math.floor((left+right)/2); const midValue = arr[midIndex]; if (midValue === target) { return midIndex; } else if (midValue < target) { left = midIndex + 1; } else { right = midIndex - 1; } } return -1;}
上記のコードは、二分探索を行う関数です。引数として、配列とターゲットの値を受け取ります。
left
およびright
は、配列のインデックスであり、探索したい範囲を表します。最初は、左端のインデックスが0
で右端のインデックスがarr.length - 1
に設定されます。
while
ループは、探索する範囲がなくなるまで続きます。midIndex
とmidValue
は、現在の範囲の中央のインデックスとその値です。midValue
がターゲット値と一致する場合、そのインデックスを返します。midValue
がターゲット値より小さい場合、範囲を右側に移動します。midValue
がターゲット値より大きい場合、範囲を左側に移動します。
最後に、ターゲット値が見つからなかった場合は、-1
を返します。