JavaScriptを使用したバイナリ検索で配列を検索する
問題
ソートされた数値の配列(昇順)、最初の引数としてarr、2番目の引数としてターゲット番号を受け取るJavaScript関数を作成する必要があります。配列はソートされているため、この関数はバイナリ検索アルゴリズムを使用して配列arr内のターゲットを検索する必要があります。
ターゲットが存在する場合は、そのインデックスを返す必要があります。そうでない場合は、-1を返す必要があります。
たとえば、関数への入力が
入力
const arr = [3, 5, 7, 9, 11, 13, 15, 16, 18, 21, 24, 25, 28]; const target = 13;
出力
const output = 5;
例
以下はコードです-
const arr = [3, 5, 7, 9, 11, 13, 15, 16, 18, 21, 24, 25, 28]; const target = 13; const binarySearch = (arr = [], target) => { const helper = (low, high) => { if (low > high) { return -1 } const middle = Math.floor((low + high) / 2) if (arr[middle] === target) { return middle } if (arr[middle] < target) { return helper(middle + 1, high) } return helper(low, middle - 1) } return helper(0, arr.length - 1) }; console.log(binarySearch(arr, target));
出力
5
-
JavaScriptオブジェクトの配列で配列のメソッドを使用していますか?
以下は、JavaScriptオブジェクトの配列で配列のメソッドを使用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <styl
-
JavaScript配列を条件付きで結合しますか?
以下は、JavaScriptの条件を持つJavaScript配列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>