JavaScript ES6 コレクションの計算量/時間計算量
ES6 のキー付きコレクション (Set、Map、WeakSet、WeakMap) の計算量と時間計算量の決定
予想される複雑さ
開発者は通常、ES6 キー付きコレクションが has のような操作に O(1) の複雑さを持つ効率的なアルゴリズムを使用することを期待しています。
ECMAScript 仕様
ECMAScript 2015 言語仕様では、キー付きコレクションの実装が「要素数に対してサブリニア」なアクセス時間を提供することを義務付けています。コレクションの中で。」この表現は、O(1) などの特定の複雑さを明示的に指定するものではありません。
実際の実装
明示的な義務がないにもかかわらず、実装はの ES6 キー付きコレクションはハッシュ テーブルまたは同様のデータ構造を使用するため、定数時間 (O(1)) アクセスが発生します。これは、ほとんどの JavaScript エンジンで観察されたこれらの操作のパフォーマンスと一致しています。
許容される複雑さ
ECMA 仕様では、次のツリーを使用する実装も許可されていることに注意することが重要です。対数的なアクセスの複雑さ。ただし、これは実際にはあまり一般的ではありません。
基礎となるデータ構造
ECMA 仕様では、キー付きコレクションの特定の基礎となるデータ構造を義務付けていません。これにより、実装者に選択が委ねられますが、実装者は通常、特定のシナリオに応じてハッシュ テーブルやツリーなどのパフォーマンスの高いデータ構造を選択します。
結論として、ECMA 仕様では ES6 の複雑さ O(1) を明示的に義務付けていません。キー付きコレクションは、線形未満の複雑さを強く意味します。通常、実装では効率的なデータ構造が使用され、その結果、ほとんどの操作で一定時間のアクセスが行われます。
以上がES6 キー付きコレクションの予想される計算量と時間の複雑さはどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。