SORU
24 EKİM 2008, Cuma


Javascript Dizi.uygulama sıralama?

Hangi algoritma JavaScript Array#sort() işlevi kullanır? Değişkenleri ve işlevleri her şekilde sıralar farklı türde, sadece vanilya sıralama kullanan ilgileniyorum gerçekleştirmek için almak mümkün olabilir.

CEVAP
25 EKİM 2008, CUMARTESİ


Sadece WebKit (Chrome, Safari ...) source bir göz attım. Dizinin türüne bağlı olarak, farklı tür yöntemler kullanılır:

Numeric arrays (ya da ilkel tür dizileri) C standart kütüphane fonksiyonu quicksort bazı varyasyon uygulayan std::qsort (genellikle introsort) kullanılarak sıralanır.

Contiguous arrays of non-numeric type birleştirme sıralama varsa ve mergesort kullanarak, mevcut (istikrarlı bir sıralama elde etmek için) ya da qsort stringified sıralanmış.

Diğer türleri (bitişik olmayan diziler ve muhtemelen için ilişkilendirilebilir diziler) Y kullanır ya da selection sort (diyorlar “min” sort) ya da, bazı durumlarda, bu tür üzerinden bir CEMİYET ağaç. Ne yazık ki, belgeler burada kod yollarını kullanılan aslında hangi tür görmek izlemesi gerek diye biraz muğlaktır.

Ve sonra this comment gibi taşlar vardır:

// FIXME: Since we sort by string value, a fast algorithm might be to use a
// radix sort. That would be O(N) rather than O(N log N).

– Sadece kim aslında” bu yorum yazar daha asimptotik zamanı daha iyi bir anlayış var, ve bu sadece(N) den radix sort has a slightly more complex runtime description. fark “giderir umuyoruz.

(Teşekkürler özgün yanıt hata işaret için phsource.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christian Atlas

    Christian At

    26 Mart 2009
  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011