Ana içerik
Konu: Bilgisayar Bilimi > Ünite 1
Ders 4: Yerleştirmeli SıralamaEkleme sıralamanın analizi
Seçmeli sıralama gibi, ekleme sıralama dizenin indeksleri üzerinde döngüler. indekslerindeki ögelerde
insert
çağırır. indexOfMinimum
a her çağrı gibi, insert
e her çağrının süresi de sıralanmış alt dizinin uzunluğuna bağlıdır. Aslında, bir önceki cümlede ''bağlıdır'' yerine, ''bağlı olabilir'' de diyebilirdik, bunun nedenini göreceğiz.insert
ü çağırdığımız ve bir alt diziye eklenen değerin, bu alt dizideki ögelerin hepsinden daha küçük olduğu bir durumu düşünelim. Örneğin, eğer [2, 3, 5, 7, 11] alt dizisine 0 ekliyorsak, bu durumda alt dizideki her öge bir konum sağa kaymalıdır. Buna göre, genel olarak, eğer insert
e her çağrıda, eklenen değerin dizide solundaki her ögeden daha küçük olduğunu varsayın. Birinci kere insert
çağırdığımızda, Bu toplam bir aritmetik seridir, yalnızca 'e gider, 'ye değil. Aritmetik seri formülümüzü kullandığımızda, alt dizilere eklemek için harcanan toplam sürenin şu olduğunu buluruz:
Büyük-θ gösterimini kullanırsak, alt dereceden terim ile ve 1/2 sabit faktörlerini çıkardığımızda, bu durumda ekleme sıralamanın çalışma süresinin olduğunu buluruz.
Ekleme sıralama kezden daha az sürebilir mi? Cevap, evettir. [2, 3, 5, 7, 11] dizisini düşünün, burada sıralanmış alt dizi ilk dört ögedir ve biz 11 değerini ekliyoruz. İlk testte 11'in 7'den büyük olduğunu buluruz, dolayısıyla alt dizideki ögelerden hiç birisinin sağa kaymasına gerek yoktur. O zaman, bu çağrı olduğundan, eğer her çağrı sabit süre ( ) alıyorsa, bu durumda ekleme sıralama için toplam süre 'dir; bu değil, 'dir.
insert
çağrısı sabit zaman alır. Her insert
çağrısının sabit zaman aldığını varsayalım. insert
e Bu durumlardan biri oluşabilir mi? 'dir. Her ögenin solundaki ögeden küçük olması ne anlama gelir? Dizinin ters sırada, [11, 7, 5, 3, 2] gibi başlaması gerekir. Dolayısıyla, ekleme sıralama için en kötüsü, ters sıralanmış bir dizidir.
insert
e her çağrı alt dizideki her ögenin bir konum sağa kaymasına neden olabilir mi? insert
'e yapılan her çağrı hiçbir ögenin kaymamasına yol açabilir mi? İki sorunun da cevabı evettir. Eğer eklenen anahtar solundaki ögelerin tümünden küçükse, insert
e her çağrı her ögenin kaymasına neden olur. Buna göre, eğer her öge solundaki her ögeden küçükse, ekleme sıralamanın çalışma zamanı Bu durumun tersi nedir? Eğer eklenen anahtar solundaki ögelerin tümünden büyük veya eşitse, 'dir. Bu durum, dizi zaten sıralanmış olarak başladığında olur ve dolayısıyla zaten sıralanmış olan bir dizi, ekleme sıralama için en iyi durumdur.
insert
e yapılan bir çağrı hiç bir ögenin kaymasına yol açmaz. Buna göre, her öge solundaki ögeden büyük veya eşitse, ekleme sıralamanın çalışma zamanı Ekleme sıralamanın çalışma zamanı için başka neler söyleyebiliriz? Diyelim ki, dize rastgele bir sırayla başlar. Bu durumda, ortalamada, her bir ögenin solundaki ögelerin yarısından az olmasını beklerdik. Bu durumda, ortalamada, ögelik bir alt dizide bir 'sini kaydırır. Çalışma zamanı, en kötü durumdaki çalışma zamanının yarısı olur. Ancak sabit katsayıların önemli olmadığı asimptotik gösterimde, ortalama durumda çalışma süresi (aynı en kötü durum gibi) olacaktır.
insert
çağrısı, bunların Eğer dizinin ''neredeyse sıralanmış'' olduğunu bilseydiniz ne olurdu, yani her öge, sıralandığında olması beklenen, en fazla sabit konum sayısından -diyelim ki 17- başlasaydı? Bu durumda ögelik bir dizideki bir olacaktır. çağrının tamamında, çalışma süresi olacaktır, bu en iyi durumda olduğu gibi 'dir. Neredeyse-sıralanmış bir dizi verildiğinde, ekleme sıralaması hızlı olur.
insert
e her çağrı en fazla 17 ögeyi kaydırır ve insert
çağrısı için süre maksimum insert
e Özetlersek, ekleme sıralama için çalışma zamanları:
- En kötü durum:
. - En iyi durum:
. - Rastgele bir dizi için ortalama durum:
. - "Neredeyse sıralanmış" durum:
.
Ekleme sıralamanın tüm durumlarına uygun bir genel bir ifadede bulunmamız gerekseydi, zamanında çalıştığını söylememiz gerekirdi. Bunun her durumda zamanda çalıştığını söyleyemezsiniz, zira en iyi durum zamanda çalışır. Bunun her durumda zamanda çalıştığını da söyleyemezsiniz, zira en kötü durumda çalışma zamanı 'dir.
Bu içerik Dartmouth Bilgisayar Bilimleri öğretim görevlileri Thomas Cormen ve Devin Balkcom ile Khan Academy bilgisayar bölümü içeriklerini hazırlayan takımın işbirliği ile hazırlanmıştır. İçerik CC-BY-NC-SA lisanslıdır.
Tartışmaya katılmak ister misiniz?
Henüz gönderi yok.