Menu
Coddy logo textTech

Pseudo Code

Coddy'nin Heap Sort - DSA Serisi kursunda ders 4 / 9.

siftDown(array, i, size):
   loop:
      largest = i
      left = 2*i + 1
      right = 2*i + 2
      if left < size and array[left] > array[largest]:  largest = left
      if right < size and array[right] > array[largest]: largest = right
      if largest == i: stop
      swap array[i] and array[largest]
      i = largest

heapSort(array):
   n = length(array)
   for i from n/2 - 1 down to 0:   # max-heap oluştur
      siftDown(array, i, n)
   for end from n-1 down to 1:     # maksimumu tekrar tekrar çıkar
      swap array[0] and array[end]
      siftDown(array, 0, end)
  • siftDown, max-heap özelliği yeniden sağlanana kadar çok küçük bir ebeveyni daha büyük olan çocuğunun altına iter. size, dizinin ne kadarının hala yığının (heap) bir parçası olduğudur.
  • Oluşturma aşaması: Yaprak olmayan her düğümü (son ebeveynden, yani n/2 - 1 indeksinden köke kadar) aşağı doğru süzmek, herhangi bir diziyi bir max-heap'e dönüştürür.
  • Sıralama aşaması: Her adım mevcut maksimumu sona taşır ve yığını küçültür, böylece dizi sondan başa doğru sıralanmış şekilde dolar.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Heap Sort - DSA Serisi bölümündeki tüm dersler