Struktur data heap

STRUKTUR DATA HEAP

Pengertian Struktur Data Heap

Heap adalah struktur data berbentuk complete binary tree yang memenuhi heap property.


Struktur Data Heap: Pengertian, Karakteristik, dan Operasinya

Complete binary tree sendiri dapat didefinisikan sebagai binary tree di mana semua level terisi penuh, kecuali level terakhir. Semua kunci atau nilai pada level terakhir harus rata kiri apabila tidak terisi penuh.



Gambar di bawah ini adalah contoh dari complete binary tree.



Sumber: afteracademy.com



Adapun jenis-jenis heap property di antaranya:


Max-Heap: Kunci atau nilai yang ada di simpul mana pun harus lebih besar dari kunci/nilai yang ada di kedua simpul anaknya. Kunci terbesar ada di simpul akar (root node).


Contoh max heap

Sumber: afteracademy.com


Min-Heap: Kunci yang ada di simpul mana pun harus lebih kecil dari kunci yang ada di kedua anaknya. Kunci terkecil ada di simpul akar.


Contoh min heap

Sumber: afteracademy.com


Karakteristik Struktur Data Heap


Heap memiliki ciri-ciri sebagai berikut:


Sistem menetapkan heap identifier unik untuk setiap heap dalam grup aktivasi. Heap identifier untuk heap default selalu bernilai nol. API bindable manajemen penyimpanan, dipanggil oleh program atau prosedur, menggunakan heap identifier untuk mengidentifikasi heap yang akan digunakan untuk bertindak. API bindable harus dijalankan dalam grup aktivasi yang memiliki heap.

Ukuran heap diperluas secara dinamis untuk memenuhi permintaan alokasi. Ukuran maksimum heap adalah (4GB – 512KB). Ukuran tersebut adalah ukuran heap maksimum jika jumlah total alokasi (pada satu waktu) tidak melebihi 128.000.

Ukuran maksimum alokasi tunggal apa pun dari heap dibatasi hingga (16MB – 64KB).

Operasi-operasi pada Struktur Data Heap


Operasi umum yang terlibat dalam heap di antaranya:


Heapify: Proses untuk mengatur ulang heap untuk mempertahankan properti heap.

Find-max (atau Find-min): Menemukan item maksimum dari max-heap, atau item minimum dari min-heap.

Insertion: Menambahkan item baru di heap.

Deletion: Menghapus item dari heap.

Extract Min-Max: Mengembalikan dan menghapus elemen maksimum atau minimum masing-masing di max-heap dan min-heap.

Heapify

Heapify adalah proses untuk mengatur ulang elemen heap untuk mempertahankan properti heap. Ini dilakukan ketika node tertentu menyebabkan ketidakseimbangan di heap karena beberapa operasi pada node tersebut.



Heapify dapat dilakukan dalam dua metodologi:


up_heapify()

Metodologi heapify yang mengikuti pendekatan bottom-up. Kita akan memeriksa apakah node mengikuti properti heap dengan menuju ke arah rootNode atau tidak. Apabila tidak mengikuti, kita melakukan operasi tertentu agar tree mengikuti properti heap.

down_heapify()

Kebalikan dari up heapify, dimana down heapify mengikuti pendekatan top-down.Kita memeriksa apakah node mengikuti properti heap dengan menuju ke arah node daun. Jika node tidak mengikuti properti heap, kita melakukan operasi tertentu agar tree mengikuti properti heap.

Find-max (atau Find-min)

Elemen maksimum dan elemen minimum di max-heap dan min-heap ditemukan di simpul akar (root node) dari heap.



Insertion

Operasi insertion pada heap mengikuti langkah-langkah berikut


Sisipkan elemen baru di ujung heap.

Karena elemen yang baru dimasukkan dapat mendistorsi properti Heap. Jadi, kita perlu melakukan operasi up_heapify() , untuk menjaga properti heap dalam pendekatan bottom-up.

Deletion

Operasi deletion atau penghapusan standar pada heap adalah menghapus elemen yang ada di simpul akar heap. Operasi deletion mengikuti langkah berikut:


Ganti elemen yang akan dihapus oleh elemen terakhir di heap.

Hapus item terakhir dari heap.

Sekarang, elemen terakhir ditempatkan pada beberapa posisi di heap, dimana ada kemungkinan tree tidak mengikuti properti heap, jadi kita perlu melakukan operasi down_heapify() untuk mempertahankan struktur heap. Operasi down_heapify() melakukan heapify dalam pendekatan top-bottom.

Extract Min-Max

Operasi ini mengembalikan dan menghapus elemen maksimum atau minimum masing-masing di max-heap dan min-heap. Elemen maksimum ditemukan di simpul akar.


Kegunaan Struktur Data Heap

Heap digunakan untuk membuat antrian prioritas (priority queue).

Heap sort adalah salah satu algoritma sorting tercepat dengan kompleksitas waktu O(N* log(N), dan mudah diimplementasikan.

Best First Search (BFS) adalah teknik informed search, di mana teknik ini diimplementasikan menggunakan antrian prioritas yang dibuat dengan heap.

Kelebihan Struktur Data Heap

Struktur data heap memiliki keunggulan atau kelebihan sebagai berikut:


Kompleksitas waktu pada struktur data heap cenderung lebih sedikit. Untuk memasukkan atau menghapus elemen di heap, kompleksitas waktunya hanya O(log N).

Membantu untuk menemukan jumlah minimum dan jumlah terbesar.

Untuk operasi peek elemen paling awal, kompleksitas waktunya konstan O(1).

Dapat diimplementasikan menggunakan array, tidak memerlukan ruang ekstra untuk pointer.

Binary heap adalah pohon biner yang seimbang, dan mudah diterapkan.

Heap dapat dibuat dengan O(N) waktu.

Kekurangan Struktur Data Heap

Berikut ini adalah beberapa kekurangan dari struktur data heap:


Kompleksitas waktu untuk mencari elemen di Heap adalah O(N).

Untuk menemukan penerus atau pendahulu dari suatu elemen, heap membutuhkan waktu O(N), sedangkan BST hanya membutuhkan waktu O(log N).

Untuk mencetak semua elemen heap dalam urutan kompleksitas waktu adalah O(N*log N), sedangkan untuk BST, hanya dibutuhkan waktu O(N).

Manajemen memori lebih kompleks dalam tumpukan memori karena digunakan secara global. Memori heap dibagi menjadi dua bagian - generasi lama dan generasi muda dll. pada garbage collection milik java.

Penutup

Demikianlah penjelasan lengkap mengenai struktur data heap. Semoga informasi yang disajikan dapat bermanfaat dan menambah khazanah pengetahuan kita.


Apabila Anda suka dengan artikel seperti ini, Anda dapat mengunjungi rubrik Data Structure atau membaca artikel lainnya mengenai "Perbedaan Informed Search dan Uninformed Search".


Salam!


Referensi:


https://afteracademy.com/blog/introduction-to-heaps-in-data-structures/

https://www.geeksforgeeks.org/introduction-to-heap-data-structure-and-algorithm-tutorials/

https://afteracademy.com/blog/operations-on-heaps/

https://www.geeksforgeeks.org/applications-advantages-and-disadvantages-of-heap/

Trivusi

Trivusi

Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

Berbagi :


Anda mungkin menyukai postingan ini :


Perbedaan Informed Search dan Uninformed Search

Perbedaan Informed Search dan Uninformed Search

Apa itu Algoritma Breadth First Search? Pengertian dan Cara Kerjanya

Apa itu Algoritma Breadth First Search? Pengertian dan Cara Kerjanya

Apa itu Uniform-Cost Search? Pengertian dan Cara Kerjanya

Apa itu Uniform-Cost Search? Pengertian dan Cara Kerjanya

Struktur Data Linked List: Pengertian, Karakteristik, dan Jenis-jenisnya

Struktur Data Linked List: Pengertian, Karakteristik, dan Jenis-jenisnya

Posting Komentar untuk "Struktur Data Heap: Pengertian, Karakteristik, dan Operasinya"


Komentar SPAM akan disensor. Harap gunakan kalimat yang tidak menjurus pada SARA dan pornografi.


Postingan Lebih BaruPostingan Lama

Gabung ke Grup Komunitas Trivusi.web.id di Facebook

DMCA.com Protection Status

Artikel Populer

Struktur Data Tree: Pengertian, Jenis, dan Kegunaannya

Struktur Data Tree: Pengertian, Jenis, dan Kegunaannya

Struktur data adalah cara atau teknik untuk mengatur elemen…

Struktur Data Graph: Pengertian, Jenis, dan Kegunaannya

Struktur Data Graph: Pengertian, Jenis, dan Kegunaannya

Struktur data menyedi

akan cara dalam menyimpan data agar da…


  

About Disclaimer Terms of Service Privacy Policy Sitemap Contact

© 2021 - Trivusi

Komentar

Postingan populer dari blog ini

Algoritma Pencarian

Menu-menu pemrograman