2016-05-16 14 views

cevap

1

Bu sorundan kabuk sıralamasını kullanabilirsiniz. Bu algoritmada, Her aşamadan sonra ve her bir artış için, her i için bir [i] ≤ a [i + hk] var. hk aralıklı tüm elemanlar sıralanır. Bu dizinin hk - olduğu söylenir. kabuk sıralaması çıktı 1-sıralanır. dizisi k-sort ise, kabuk dizisi sıralama dizisi için O (log k) dizisine ihtiyaç duyar. Her faz O (n) ye ihtiyaç duyar, o zaman toplam düzen O (n log k) olur.

bu diziyi sıralamak istediğinizi varsayalım:

bu dizi-4 sıralanır

enter image description here

(k = 4). Bunu sınıflandırmak için, 2 faza ihtiyaç vardır (h2 = 2, h3 = 1) İki faza ihtiyaç vardır (lg 4 veya lg k). Her aşamada, dizilmesi gereken n/k alt dizileri vardır. her alt dizi ekleme sıralama ile sıralar. Her alt dizinin sıralama sırası O (n). Son olarak, Toplam sipariş O (n * lg k) = O (n log k).

+0

'dizisi k-sort ise, kabuk dizisi sıralama dizisi için O (log k) dizisine gerek duyar '- Bunun için bir ispat fikri göstermek iyi olur. – MBo

+0

Cevabımı düzenledim, bakın. –

+0

@DaviedZuhraph Size yardımcı oluyorsa lütfen bu cevabı kabul et ve kabul et, bu yüzden insanlar bunun doğru cevap olduğunu biliyor ve onlara yardım ediyor. –

İlgili konular