SORU
28 HAZİRAN 2009, Pazar


Java hashmap gerçekten O(1)?

Re Java hashmaps ve O(1) arama yaptıkları zaman ÇOK ilginç bazı iddialar gördüm. Biri bunun neden böyle olduğunu açıklayabilir mi? Bu hashmaps kadar almış olduğum karma algoritmalar herhangi birinden çok farklı olmadığı sürece, her zaman çarpışmalar içeren bir veri kümesi bulunmalıdır.

Bu durumda, arama O(1) yerine O(n) olur.

Birinin olup olmadığını açıklayabilirOnlar bunu başarmak nasıl O(1) ve öyleyse?

CEVAP
28 HAZİRAN 2009, Pazar


Bir HashMap, belirli bir özelliği, diyelim ki, dengeli ağaçlar aksine, onun davranış olasılıklı olmasıdır. Bu durumda en kötü durum olasılığı açısından karmaşıklığı hakkında konuşmak genellikle en yararlı olayını meydana gelen olacaktır. Karma bir harita için, ne dersin tam göster olur saygı ile bir çarpışma durumunda. Bir çarpışma çok kolay tahmin etmektir.

pçarpışma= n / kapasite

Elemanları bile mütevazı bir sayı ile karma bir harita en az bir çarpışma yaşama olasılığı oldukça çok. Büyük O gösterimi bir şey daha zorlayıcı bize gidelim. Herhangi bir keyfi sabit k için inceleyin.

O(n) = O(k) * n)

Bu özellik, karma harita performansını artırmak için kullanabiliriz. En fazla 2 çarpışma olasılığı düşünmemiz yerine.

pçarpışma x 2= (n / kapasite)2

Bu çok daha düşüktür. Ekstra bir çarpışma işleme maliyeti Büyük O performans için önemsiz olduğundan, aslında algoritma değiştirmeden performansını artırmak için bir yol bulduk! Bu generalzie edebiliriz

pçarpışma x k= (n / kapasite)k

Ve şimdi hesap bizden daha çarpışmalar bazı rasgele sayı göz ardı etmek ve yok denecek kadar sonunda daha küçük çarpışma olasılığı edebiliriz. Tüm algoritma gerçek uygulama değiştirmeden doğru k seçerek keyfi minik bir seviyeye olasılık, sen de yapabilirsin.

Karma-göster O(1) erişimi olduğunu söyleyerek bu konuyu konuşuyoruzyüksek olasılıkla

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010
  • TheMasterOfHell100

    TheMasterOfH

    13 AĞUSTOS 2011