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>