🎓 Bounlu tarafından hazırlandı
13.617 görüntülenme

Heapsort Algoritması Nedir?

Heapsort, 'divide and conquer' (böl ve yönet) stratejisine dayalı olmayan, ancak verimli bir karşılaştırmalı sıralama algoritmasıdır. Yığın (heap) veri yapısını kullanarak elemanları sıralar.

Kısa cevap

Heapsort, bir diziyi iki aşamada sıralar: önce diziyi bir yığına dönüştürür, ardından yığından en büyük (veya en küçük) elemanı çıkararak sıralı bir dizi oluşturur.

01

Adım adım çözümlü örnekler

Heapsort ile [4, 10, 3, 5, 1] dizisini sıralayın.

1. Yığın Oluşturma: Diziyi maksimum yığına dönüştürün. [10, 5, 3, 4, 1]
2. Sıralama:
   - En büyük eleman (10) dizinin sonuna taşınır. Dizi: [1, 5, 3, 4], Yığın: [10]
   - Kalan elemanlarla yığın tekrar düzenlenir: [5, 4, 3, 1]
   - En büyük eleman (5) son elemanın önüne taşınır. Dizi: [1, 4, 3], Yığın: [5, 10]
   - Kalan elemanlarla yığın tekrar düzenlenir: [4, 1, 3]
   - En büyük eleman (4) son elemanın önüne taşınır. Dizi: [1, 3], Yığın: [4, 5, 10]
   - Kalan elemanlarla yığın tekrar düzenlenir: [3, 1]
   - En büyük eleman (3) son elemanın önüne taşınır. Dizi: [1], Yığın: [3, 4, 5, 10]
   - Son eleman (1) en başa konulur. Dizi: [1], Yığın: [1, 3, 4, 5, 10]
Sonuç: [1, 3, 4, 5, 10]

Heapsort'un 'heapify' işlemi nedir?

Heapify, bir düğümün ve onun alt ağaçlarının yığın özelliğini korumasını sağlayan bir işlemdir. Bir düğümün altındaki elemanlar yığın özelliğini bozuyorsa, düğüm ile altındaki en büyük çocuk yer değiştirilir ve işlem özyinelemeli olarak devam eder.
02

Bilgi kartları

03

Mini test

S1.Heapsort algoritmasının ilk adımı nedir?

Doğru cevap: A. Heapsort'un ilk adımı, verilen diziyi bir yığın (genellikle maksimum yığın) veri yapısına dönüştürmektir.

S2.Aşağıdakilerden hangisi Heapsort'un avantajlarından biridir?

Doğru cevap: B. Heapsort, sıralamayı orijinal dizi üzerinde yaptığı için O(1) yer karmaşıklığına sahiptir, yani yerinde bir sıralama algoritmasıdır.

S3.Heapsort'un 'heapify' işlemi neyi sağlar?

Doğru cevap: B. Heapify işlemi, bir düğümün ve alt ağaçlarının yığın (heap) özelliğini korumasını sağlar.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Heapsort, diziyi önce ikiye böler ve sonra birleştirir.Doğrusu: Heapsort, diziyi bir yığına dönüştürür ve sonra elemanları yığından çıkararak sıralar. 'Divide and Conquer' stratejisini kullanmaz.

Heapsort her zaman en hızlı sıralama algoritmasıdır.Doğrusu: Heapsort'un zaman karmaşıklığı O(n log n)'dir. Bazı durumlarda (örneğin, Merge Sort veya Quick Sort'un iyi uygulamaları) daha hızlı olabilir.

05

Sıkça sorulan sorular

Heapsort neden 'yerinde' bir sıralama olarak kabul edilir?

Çünkü sıralama işlemi için ek bir diziye ihtiyaç duymaz, orijinal dizi üzerinde çalışır ve bu da O(1) yer karmaşıklığına yol açar.

Heapsort'un dezavantajları nelerdir?

Heapsort kararlı bir algoritma değildir ve pratikte Quick Sort gibi algoritmalara göre genellikle daha yavaştır, çünkü veri erişimi daha az yereldir (cache dostu değildir).

Maksimum yığın (max-heap) ve minimum yığın (min-heap) arasındaki fark nedir?

Maksimum yığında, her ana düğümün değeri, alt düğümlerinin değerlerinden büyük veya eşittir. Minimum yığında ise tam tersi geçerlidir; ana düğüm en küçük değere sahiptir.

İlgili konular