BilgisayarlarProgramlama

Bir programlama yöntemi olarak Quicksort

1960 yılında, K. A. Hoar, bilginin hızla ayrılabilmesi için bir yöntem geliştirdi en meşhur oldu. olumlu özelliklerinin bir yeri vardır Bugün yaygın, programlamada kullanılır: genel durumlar için de kullanılabilir, bu listelerin farklı tipleri ile uyumlu ve uygulanması kolaydır ek bellekte küçük bir artış gerektirir. kullanarak iş bir çok hata izin ve biraz kararsız: Ama Quicksort olan, dezavantajları vardır.

Ancak, en çok çalışılan versiyonudur. ilk ödeme Hoare'la sonra birçok ülkenin yoğun çalışma yapmak. Büyük baz ampirik kanıtlarla desteklenmektedir iş, harcanan zamanı bulma teorik sorunlarda kurulmuştur. Temel algoritma ve artan hızını artırmak için gerçek önerileri vardı.

Quicksort her yerde bulunabilir, çok yaygındır. Bunu dayanarak yöntem Delphi, bu C ++, qsort için geçen zamanın kütüphane işlevi (1 hariç) alternatifler mevcut TList.Sort, uygulanmaktadır.

işlem temel ilkesi, bir "böl ve istilası" olarak da formüle edilebilir. Bu iki gruba listesini kırılma meydana gelir ve tek başına her bir parça için sıralanır. bir taban elemanı tarafından belirlenir ve nispeten onun tüm liste bir düzenleme yapılmıştır: daha fazla ilgi, aşağıdaki meydana geldiği ayırma işlemi, dikkat edilmelidir izler. adayların bir grubun solunda inşa edilen değer olan diğer tüm aktarım kuralları daha azdır. Bu sıralanmış listedeki ana unsur haklı yerinde olduğu ortaya çıktı. Bir sonraki aşama - tabanına göre elemanların her iki taraf için bir meydan okuma özyinelemeli sıralama işlevleri. O sıralanabilir etmek, süreç liste sadece bir eleman içeriyorsa çalışır biter. Böylece hızlı bir tür olarak bir programlama fonksiyonunu ustalaşmak için, alt düzey algoritmalar çalışmalarını bilmek gereklidir: a) taban üyesi seçimi; b) en etkili permütasyon bir listesi daha küçük ve daha büyük değerler ile iki set üretmek.

İlk ilkelere alıştırın. Baz elemanı seçerken, ideal olarak ortalama listesinden seçilmelidir. Sonra tatilinde iki eşit parçaya bölünür. Sadece hesaplamak ortalama değer listesinde çok zordur, bu yüzden bile en hızlı sıralama bu matematik tarafını atlar. Ama maksimum veya minimum değer ile temel elemanın seçimi - ayrıca değil en iyi seçenek. durumda birinin böyle tayini boş listeleri garantili ve ikinci tam olacak oluşturur. Dolayısıyla taban üyesi olarak ortalamaya yakın olan biri seçildi, ancak maksimum ve minimum üzerine edilmelidir sonuç.

Bir seçim belirlendikten sonra, sen ayrışma algoritmaya ilerleyebilir. Bu hızlı sıralama iç döngüler sözde. Her şey iki Rapid Erişim endeksler üzerine kurulmuştur: İlk sağdan sola doğru, tam tersine, sağa, ikinci soldan elemanları üzerinden gitmek. operasyon yürütme hakkına Başlıyor: endeksi listesinde bulunan ve ana kadar tüm değerleri karşılaştırın. eleman, taban çizgisine göre daha az ya da eşit olduğunda döngüsü tamamlanır. Oradaki bir karşılaştırma bulunmaktadır ve endeks değerini azaltır vardır. Sol taraftan çalışma eşit veya değeri büyüktür bittiğinde. Burada karşılaştırma değeri artar.

quicksort içermektedir bölümleme algoritmasının Bu aşamada, iki durum ortaya çıkabilir. İlk soldaki endeks sağ daha az olmasıdır. Bu bir hata olduğunu belirtir, o zaman listede belirtilen edildiği elemanları sırası yanlış var. Çıktı - yerlerini değiştirin. sütunun iki eşit veya çapraz olduğunda, ikinci bir durumdur. Bu yani iş artık tamamlandı, listenin başarılı ayrılmasını gösterir.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tr.atomiyme.com. Theme powered by WordPress.