nedir? Ben mülkiyet tüm dizilerde otomatik olarak ayarlanır ve sadece yukarı baktığınız görünüyor beri sabit olacağını düşünüyorum?zaman karmaşıklığı javascript'in .length
cevap
Bu özellik, dizinin tüm dizilerde otomatik olarak ayarlandığı ve sürekli olarak baktığınız için sabit olacağını düşünüyorum.
Sağ. Muhtemelen. Depolanan (hesaplanmayan) ve gerektiğinde otomatik olarak güncellenen bir özelliktir.
Bunu söyleyerek,, JavaScript motorlarının, teknik özelliklerin söylediklerinden herhangi bir sapma gözlemleyememeniz koşuluyla, kapakların altında istediklerini yapmakta serbest olduğunu unutmayın. Belirtim, length
...
'un zaman karmaşıklığı hakkında bir şey söylemediğinden, JavaScript'in standart dizilerinin yalnızca teoride objects with special behavior olduğunu unutmayın. Ve , numaralı kuramda, JavaScript nesneleri özellikli çantalardır. Öyleyse, bir mülk torbasında bir mülkün aranması, teoride, nesne, bir tür isim-> değer hashimi olarak uygulandığında (ve eski kötülere geri döndüğünde) kaç tane özelliğin var olduğuna bağlı olabilir.). Modern motorlar nesneleri optimize eder (Chrome'un V8'i sinekte dinamik sınıflar yaratır ve bunları derler), ancak bu nesnelerdeki işlemler hala özellik arama performansını değiştirebilir. Bir özellik eklemek, V8'in bir alt sınıf oluşturmasına neden olabilir. Bir özelliği silmek (aslında delete
'u kullanarak) V8'in ellerini kaldırmasını ve nesne üzerinde özellik erişimini önemli ölçüde azaltan "sözlük modu" na geri düşmesini sağlayabilir. Başka bir deyişle: Motor değişebilir, hatta nesneye nesne olabilir. Ancak dizileri yalnızca diziler olarak kullanırsanız (bunlara başka dizisel olmayan özellikler saklamıyorsanız), oranlar sabit zaman aralığına sahip olur.
Bir darboğaz gibi görünmüyor, ancak emin olmak istiyorsanız var len = arr.length
kullanın ve bunu kontrol edin. Acımak yok ve makinemde biraz daha hızlı görünüyor, önemli bir fark olmasa da. İzin verirseniz
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. zaman karmaşıklığı
- 2. Zaman havza bulmanın karmaşıklığı
- 3. Hesaplama Zaman Karmaşıklığı Kod
- 4. Math.Sqrt() zaman karmaşıklığı?
- 5. Java'da ayarlanan zaman karmaşıklığı
- 6. Swift'in zaman karmaşıklığı Set.indexOf
- 7. Java'da Math.abs'ın zaman karmaşıklığı?
- 8. Tam tersi zaman karmaşıklığı Haskell
- 9. Canny kenar detektörünün zaman karmaşıklığı
- 10. Banker'in algoritması hesaplanan zaman karmaşıklığı
- 11. klojürde sayım işlevinin zaman karmaşıklığı nedir?
- 12. Ruby'de Array # uniq yönteminin zaman karmaşıklığı nedir?
- 13. Python'da dict.keys() 'nin zaman karmaşıklığı nedir?
- 14. Analiz zaman karmaşıklığı (polinom karşı Poli günlüğü)
- 15. Bu İşlevin Şemadaki Zaman Karmaşıklığı nedir?
- 16. Vektör dönüştürmek için zaman karmaşıklığı mat
- 17. heapsort - uygulamanın karmaşıklığı
- 18. Seti length özelliği
- 19. Karşılaştırma işleçlerinin karmaşıklığı
- 20. Gç zamanının karmaşıklığı()
- 21. Array's Length özelliğini ayarlama
- 22. Java'da LinkedList'te bir boyutlu() çağrının zaman karmaşıklığı nedir?
- 23. Sıralanmamış bir dizi için ikili aramanın zaman karmaşıklığı
- 24. A * zaman karmaşıklığı nedir ve nasıl elde edilir?
- 25. AES EVP_Decrypt'in "length" parametresi nedir?
- 26. C++ set_intersection'ın karmaşıklığı nedir?
- 27. Uzun bölümün karmaşıklığı nedir?
- 28. Bu algoritmanın karmaşıklığı?
- 29. Bir Lucene araştırmasının karmaşıklığı
- 30. HashSet arama karmaşıklığı?
, neden endişe verici bir nesne özelliğinin zaman karmaşıklığı nedir? Çok mu az görünüyor? –