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

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • theatre2film

    theatre2film

    12 NİSAN 2006