Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの二分探索プログラム


4つの引数を取るbinarySearch()などの関数を作成します-

  • ソートされた数値/文字列リテラル配列
  • 配列の開始インデックス(0)
  • 配列の終了インデックス(長さ-1)
  • 検索する番号

数値が配列に存在する場合は、数値のインデックスを返す必要があります。存在しない場合は、-1を返す必要があります。これが完全なコードです-

const arr = [2,4,6,6,8,8,9,10,13,15,17,21,24,26,28,36,58,78,90];
//binary search function
//returns the element index if found otherwise -1
const binarySearch = (arr, start, end, num) => {
   const mid = start + Math.floor((end - start)/2);
   if(start <= end){
      if(arr[mid] === num){
         return mid;
      }
      if(num < arr[mid]){
         return binarySearch(arr, start, mid-1, num);
      }
      if(num > arr[mid]){
         return binarySearch(arr, mid+1, end, num);
      }
   }
   return -1;
};
console.log(binarySearch(arr, 0, arr.length-1, 13));
console.log(binarySearch(arr, 0, arr.length-1, 11));

出力

コンソールでのこのコードの出力は-

になります
8
-1

  1. C#での二分探索

    バイナリ検索はソートされた配列で機能します。値は配列の中央の要素と比較されます。同等性が見つからない場合は、値が存在しない半分の部分が削除されます。同様に、残りの半分の部分が検索されます。 これが配列のmid要素です。 62を見つける必要があるとしましょう。そうすると、左側の部分が削除され、右側の部分が検索されます- これらは二分探索の複雑さです- 最悪の場合のパフォーマンス O(log n) ベストケースのパフォーマンス O(1) 平均パフォーマンス O(log n) 最悪の場合のスペースの複雑さ O(1) 例 二分

  2. バイナリ挿入ソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、バイナリ挿入ソートの概念を使用して配列をソートする必要があります。 ここでは、名前が示すように、挿入ソートアルゴリズムとともにバイナリ検索の概念を使用します。 次に、以下の実装のソリューションを見てみましょう- 例 # sort def insertion_sort(arr):    for i in range(1, len(arr)):       temp = arr[i]       pos =