Neden Koleksiyon yapar.sıralama Mergesort ama Dizi kullanın.sıralama değil mi?
FIRSATLAR-8 (64) kullanıyorum. Arrays.sort
Java belgelerinde aşağıdaki bulundu:
Sıralama algoritması Çift bir ÖzetQuicksortVladimir Yaroslavskiy, Jon Bentley, ve Joshua Bloch.`
1 ** I buldum:
Bu uygulama istikrarlı, uyumlu, bir yinelemelimergesort... Bu uygulamadöker belirtilen listeyi bir diziye sıralar dizive liste dizideki karşılık gelen konumu , her öğe sıfırlama yineler.
Collections.sort
bir dizi kullanır, neden sadece Arrays.sort
veya çift-pivot çağrı kullanmazQuickSort? Neden kullanınMergesort?
CEVAP
API sağlarkararlıhangi Quicksort sıralama sunmuyor. Sıralama ancakilkel değerlerdoğal düzenine göre ilkel değerleri hiçbir kimlik gibi bir fark olmayacak. Bu nedenle, Quicksort, biraz daha etkili olduğu gibi, temel bir dizi için kullanılır.
Nesneleri eşit equals
kendi uygulamasına göre kabul edilir veya Comparator
verilen nesneleri kendi sırasını değiştirmek, fark edebilirsiniz. Bu nedenle, Quicksort bir seçenek değil. MergeSort bir varyantı kullanılır Yani, mevcut Java sürümleri kullanınTimSort. Bu sıralama algoritmaları geçersiz kendisi olabilir, Arrays.sort
Collections.sort
Java 8, List
ile ama her ikisi için de geçerlidir.
JavaScript nesneleri bir dizi sıralama...
En hızlı sıralama uzunluğu 6 int dizi ...
Neden bir dizi İterable için atanabili...
Java nasıl bir Liste için bir dizi sır...
Ruby azalan bir dizi sıralama...