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

JavaScriptでソートされたリスト内のアイテムを検索するための最良の方法は何ですか?


並べ替えられた配列に関する限り(任意の順序)、バイナリ検索は存在する中で最も最適化された効率的な検索アルゴリズムです。ソートされたリテラルの配列でターゲットを検索するバイナリ検索関数を作成する必要があります。

次に、その関数を配列オブジェクトのプロトタイププロパティにアタッチする必要があります。

このためのコードは-

になります
const arr = [2, 5, 8, 12, 14, 16, 17, 22, 26, 28, 35, 67, 78, 99];
const target = 22;
Array.prototype.binarySearch = function(target) {
   if ( !this.length ) { return false; }
   if ( this[0] === target ) { return true; }
   var i, mid,
      start = 0,
      end = this.length,
      c = false;
   while ( c = (i = this[mid = start+((end-start)>>1)]) !== target ) {
      i < target ? (start = mid) : (end = mid);
      if (start >= end - 1) { break; }
   }
   return !c;
};
console.log(arr.binarySearch(target));

出力

そして、コンソールの出力は-

になります
true

  1. JavaScriptでイベントを追加する最良の方法は何ですか?

    任意の要素にイベントを追加する最良の方法は、addEventListener()メソッドを使用することです。 以下は、JavaScriptでイベントを追加するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  2. JavaScriptを使用して新しいブラウザウィンドウを開くための最良の方法は何ですか?

    ウィンドウオブジェクトのopen()メソッドは、JavaScriptを使用して新しいブラウザウィンドウを開くための最良の方法です 以下は、JavaScriptを使用して新しいブラウザウィンドウを開くためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sc