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

  • Avast

    Avast

    27 NİSAN 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • SRI International

    SRI Internat

    30 NİSAN 2008