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

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010
  • super1988guy

    super1988guy

    9 Aralık 2007