Tek bir arama işlemi VEYA contains
tek için en kötü durumda O(n)
olabilir? Yani hashSet
n
elemanları için O(n^2)
olacak?HashSet arama karmaşıklığı?
37
A
cevap
59
Evet O alır, ama gerçekten kötü durum var: HashSet
tüm unsurları aynı hash kodu (veya bir hash kodu giden eğer aynı kova). Doğru yazılmış bir hashCode
ve normal olarak dağıtılmış bir anahtar örnekle, bir arama O (1) olur.
-18
lookp (c)
c = sabit değer
6
Evet, ancak HashSets'e sahip olmamızın tüm nedeni, bu en kötü durumu çok, çok düşük olasılıkla karşılaşmamız ve genellikle bir yığın veya bir (kendinden dengeleyici) TreeSet veya bir (veya kendinden dengeleyici) TreeSet için garantili satırdan daha hızlıdır. Sıralanmamış bir liste için n^2 garantili.
İlgili konular
- 1. HashSet
- 2. Java'da ayarlanan zaman karmaşıklığı
- 3. Diğer HashSet
- 4. HashSet performansını
- 5. HashSet doluluk
- 6. Bir Lucene araştırmasının karmaşıklığı
- 7. zaman karmaşıklığı
- 8. Collectors.toSet() ve HashSet
- 9. HashSet IQueryable vs
- 10. Java'da HashSet Çakışması
- 11. HashSet, sözlük, ArrayList: ağaçlar Hakkında
- 12. Delphi'de bir HashSet var mı?
- 13. Hesaplama Zaman Karmaşıklığı Kod
- 14. Math.Sqrt() zaman karmaşıklığı?
- 15. zaman karmaşıklığı javascript'in .length
- 16. C++ set_intersection'ın karmaşıklığı nedir?
- 17. Karşılaştırma işleçlerinin karmaşıklığı
- 18. heapsort - uygulamanın karmaşıklığı
- 19. Gç zamanının karmaşıklığı()
- 20. Uzun bölümün karmaşıklığı nedir?
- 21. Zaman havza bulmanın karmaşıklığı
- 22. Bu algoritmanın karmaşıklığı?
- 23. Swift'in zaman karmaşıklığı Set.indexOf
- 24. Java'da Math.abs'ın zaman karmaşıklığı?
- 25. Python'da dict.keys() 'nin zaman karmaşıklığı nedir?
- 26. Tam tersi zaman karmaşıklığı Haskell
- 27. Canny kenar detektörünün zaman karmaşıklığı
- 28. Banker'in algoritması hesaplanan zaman karmaşıklığı
- 29. Bu işlev için algoritma karmaşıklığı
- 30. İşlem kümesinin karmaşıklığı nedir (liste())
Tam olarak "n elementler" ile ne demek istiyorsun? Her eleman için bir arama yapmak mı? En kötü durum O (n) olmasına rağmen, genellikle O (1) olduğunu unutmayın. –