quicksort
tip bölümleme algoritmaları, diziyi düzgün bir şekilde bölerek oldukça iyi bir pivot oluşturmak için çok popülerdir. Bu mantık olarak Wikipedia verilir:Medyan Ortamında Algoritma algoritması açıklaması
belirli dönme daha az ve daha büyük çevresinde N/10 elemanlarının (1/2 * (n/5'tir medyan listesinde elemanlarının yarısından daha hem)) her bir yarı için. Bu elemanların her biri 5 medyanıdır, bu da onu 2 diğer elementten daha az ve bloğun dışında 2 diğer elemandan daha fazla yapar. Bu nedenle, pivot bloğun dışındaki 3 (n/10) öğeden daha azdır ve bloğun dışındaki diğer 3 (n/10) öğeden daha büyüktür. Böylece seçilen medyan,% 30 /% 70 ile% 70/30 arasında bir yere elementleri ayırır, bu da algoritmanın en kötü durum lineer davranışını sağlar. Birisi benim için biraz berrak bir şekilde açıklayabilir mi?
Mantığı anlamakta zorlanıyorum. aşağıdaki numara setinin
Bir başka soru, bu yöntem garanti nasıl yaptığını bu sayı ortalama olacağı ? Medyan, diziyi üst ve alt yarısına bölen bir sayıdır. Peki bu 30-30-70 rakamı ne anlama geliyor? – SexyBeast
Eh, ortanca orta, ama 'm' (yukarıdaki metinde), tüm sayıların ortancası değildir. Bu sayıların sadece 1/5'inin ortancası (daha küçük 5 element grubunun kendileridir). Daha fazla dikkatle son paragrafı okumayı deneyin. Sonunda, 'm' sayıların en az 3n/10'undan daha büyük olduğu sonucuna varıldığında, 'm' ye çeviriler sayıların en az% 30'undan daha büyüktür.Böylece sonunda, m 'en az% 30'dan daha büyük ve en az% 30 daha küçüktür. Emin olmadığımız% 40'lık bir sol var. – Shahbaz
Öyleyse, ortalama olarak 50-50 bir bölüm veriyor? 50-50 bölüm normal medyan tarafından verilir, değil mi? – SexyBeast