SORU
14 EYLÜL 2010, Salı


Neden Diziler farklı türleri için iki farklı sıralama algoritmaları java?

Arrays.java's sıralama yöntemi ilkel dizileri için quicksort kullanır ve nesne dizileri için. sıralama birleştirme Çoğu zaman quicksort sıralama ve birleştirme maliyeti daha az bellek daha hızlı olduğunu düşünüyorum. Benim deneyler her iki algoritmaları O(nlog(n)), ancak bu destek. Neden farklı algoritmalar farklı türleri için kullanılır?

CEVAP
14 EYLÜL 2010, Salı


En büyük sebeplerinden biri, quicksort değildirkararlıyani eşit girişleri sırasında sıralama göreli konumlarını değiştirebilir; diğer şeyler arasında, zaten sıralanmış bir dizi sıralama bu demektir ki, değişmeden kalır.

İlkel türler kimlik (aynı değere sahip iki değer vermez ayırt etmek yolu yoktur), bu onlar için önemli değildir. Ama başvuru türleri için, bazı uygulamalar için sorunlara neden olabilir. Bu nedenle, istikrarlı bir sıralama için kullanılır birleştirme.

OTOH, (n*log(n) garanti) kullanmak için bir neden ilkel türler için tür dizinin bir klon yapmak gerekli olabilir birleştirme. Başvurulan nesneler genellikle başvurular dizi çok daha fazla bellek sürebilir nereye başvuru türleri için, bu genellikle önemli değildir. Ama ilkel türler için, dizi klonlama düpedüz bellek kullanımı iki katına çıkar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • SDSARG3

    SDSARG3

    14 Mart 2009
  • tychoadragmire

    tychoadragmi

    20 Mart 2006