JavaScriptの配列.lengthの時間の複雑さは何ですか?私はプロパティがすべての配列に自動的に設定されているように見えるので、それは一定であると思います。javascriptの長さの複雑さ.length
答えて
これはプロパティが自動的にすべての配列に設定されているように見えるので、あなたはそれを探しているだけなのでしょうか?
右。 おそらく。それは格納されている(計算されていない)プロパティで、必要に応じて自動的に更新されます。
言わせていただいたように、は、JavaScriptエンジンは、仕様書に記載されているものとの乖離を見ることができなければ、カバーの下で好きなことを自由に行うことができます。仕様が時間の複雑さについて何も言わないからlength
...
JavaScriptの標準配列は理論的にはちょうどobjects with special behaviorであることに注意してください。理論的にはのJavaScriptオブジェクトはプロパティバッグです。プロパティバッグのプロパティを調べることは、オブジェクトがある種の名前 - >値ハッシュマップとして実装されている場合、理論上、他にいくつのプロパティが存在するかによって決まります(そして、以前は悪い昔)。現代のエンジンはオブジェクトを最適化します(ChromeのV8はダイナミックなクラスを作成してコンパイルすることは有名ですが)。そのオブジェクトに対する操作はプロパティの検索パフォーマンスを変更する可能性があります。プロパティを追加すると、V8でサブクラスを作成することができます。プロパティ(実際にはdelete
を使用)を削除すると、V8が手を捨てて「辞書モード」に戻り、オブジェクトへのプロパティアクセスが大幅に低下します。
言い換えれば、それは、エンジンとエンジンとの間で変化することがあります。しかし、配列を純粋に配列として使用する場合(配列以外のプロパティを格納しない場合)、定時検索が可能です。
ボトルネックのようには思えませんが、確かに使用したい場合はvar len = arr.length
をチェックしてください。私のマシンでは、大きな違いはありませんが、傷つくことはなく、少し速いと思われます。
var arr = [];
for (var i = 0; i < 1000000; i++) {
arr[i] = Math.random();
}
var start = new Date();
for (var i = 0; i < arr.length; i++) {
arr[i] = Math.random();
}
var time1 = new Date() - start;
var start = new Date();
for (var i = 0, len = arr.length; i < len; i++) {
arr[i] = Math.random();
}
var time2 = new Date() - start;
document.getElementById("output").innerHTML = ".length: " + time1 + "<br/>\nvar len: " + time2;
<div id="output"></div>
- 1. JavaScriptの長さの長さ
- 2. コードフラグメントの複雑さ
- 3. バイナリツリートラバーサルの複雑さ
- 4. マルチステージグラフの複雑さ
- 5. ハッシュテーブルの複雑さ
- 6. コンパニオンマトリックスの複雑さ
- 7. バブルソートの複雑さ
- 8. アルゴリズムの複雑さ
- 9. JavaScriptのプラグイン機能の複雑さと機能の長さに関する誤検出
- 10. 長編の複雑さは何ですか?
- 11. Pythonのパーサーの複雑さ
- 12. HashSetのルックアップの複雑さ?
- 13. haskellクイックソートの複雑さ?
- 14. JQueryサイクルの複雑さ
- 15. set :: insertの複雑さ
- 16. SQL `LIKE`の複雑さ
- 17. アルゴリズムの複雑さ - エクササイズ
- 18. fooアルゴリズムの複雑さ
- 19. Dijkstraのアルゴリズム - 複雑さ
- 20. heapsort - 実装の複雑さ
- 21. RandomAccessFile Java - 複雑さ
- 22. 複雑さ(ビッグO)
- 23. 大きなプロジェクトでJavaScriptの複雑さを管理する
- 24. JavaScript関数の循環的な複雑さを理解する
- 25. JavaScript配列の長さメソッド
- 26. ポインタの複雑さのベクトルのソート
- 27. この関数のアルゴリズムの複雑さ
- 28. fun()の時間の複雑さ?
- 29. 次のアルゴリズムの複雑さは?
- 30. f(n)コストでのアルゴリズムの複雑さ
私は可能性がある場合は、なぜ懸念のオブジェクトプロパティの時間複雑性はありますか?そう、最小限のようですか? –