Menu
CoddyTech

Implementasi (Bagian 2)

Pelajaran 6 dari 9 dalam kursus Heap Sort, Seri DSA di Coddy.

Sekarang kita menggabungkan pembuatan heap dan pengambilan nilai maksimum secara berulang.

challenge icon

Tantangan

Sedang

Sekarang gabungkan semuanya menjadi algoritma lengkap.

Tulis fungsi bernama heapSort yang menerima array bilangan bulat dan mengembalikannya dalam urutan menaik.

Pertama, buat max-heap dengan menggeser ke bawah setiap node non-daun, dari indeks n/2 - 1 hingga 0. Kemudian, berulang kali tukar root (nilai terbesar) dengan elemen terakhir heap, perkecil heap satu elemen, lalu geser root baru kembali ke bawah.

Gunakan helper sift-down yang menerima size heap saat ini, agar kamu bisa memperkecil heap seiring proses berlangsung.

Coba sendiri

#include <stdlib.h>

int* heapSort(int* arr, int arr_size, int* returnSize) {
    // Tulis kodemu di sini
    *returnSize = arr_size;
    return arr;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Heap Sort, Seri DSA

Latihan sendiri: Compiler C online