Sortir Heap dalam Struktur Data: Kegunaan dan Performa

Diterbitkan: 2020-11-23

Sorting adalah proses mengatur entitas dalam urutan tertentu, yaitu ascending, descending, atau urutan abjad. Penyortiran struktur data menyangkut pengaturan data. Jika domain Anda adalah Teknologi Informasi atau Ilmu Komputer, maka Anda mungkin menemukan istilah seperti Quick Sort, Bubble Sort, Merge Sort, dan sebagainya.

Ini adalah algoritme pengurutan berbeda yang bergantung pada berbagai faktor seperti struktur data, kompleksitas, dll. Salah satu algoritme pengurutan populer yang akan kita bahas di sini adalah Heap Sort. Ini sangat mirip dengan Selection Sort, di mana nilai maksimum dipilih dan ditempatkan di akhir daftar atau larik. Mari kita menggali untuk memahami ini lebih baik.

Dalam Heap Sorting, seperti namanya, langkah pertama adalah proses pembuatan heap, atau pengelompokan secara umum. Kami membuat Max Heap untuk mengurutkan elemen dalam urutan menaik. Setelah heap dibuat, kami menukar root note dengan node terakhir dan menghapus node sebelumnya dari heap.

Daftar isi

Kompleksitas Ruang dan Waktu dari Penyortiran Heap dalam Struktur Data

  • Terbaik = (n log(n))
  • Rata-rata = (n log(n))
  • Terburuk = O(n log(n))
  • Kompleksitas ruang dari Heap Sort adalah O(1).

Demikian pula, ada konsep Max Heap dan Min Heap. Seperti pohon dan array, ada Struktur Data terorganisir lainnya yang disebut Struktur Data Heap. Ini adalah pohon biner lengkap yang mengikuti aturan bahwa semua node root lebih besar (untuk Max Heap) atau lebih kecil (untuk Min Heap) daripada node anak mereka. Proses ini disebut Heapify. Gambar yang diberikan di bawah ini adalah diagram yang cukup jelas dari Min dan Max Heaps.

Baca Juga: Pengurutan dalam Struktur Data

Keuntungan dan Kerugian menggunakan Heap Sort dalam Struktur Data

Keuntungan: Performa, efisiensi, dan akurasi yang dioptimalkan adalah beberapa kualitas terbaik dari algoritme ini. Algoritme ini juga sangat konsisten dengan penggunaan memori yang sangat rendah. Tidak ada ruang memori tambahan yang diperlukan untuk bekerja, tidak seperti Merge Sort atau Recursive Quick Sort.

Kekurangan: Heap Sort dianggap tidak stabil, mahal, dan tidak terlalu efisien saat bekerja dengan data yang sangat kompleks.

Aplikasi Penyortiran Heap

Anda mungkin telah menemukan algoritma Dijkstra yang menemukan jalur terpendek di mana Heap Sort diimplementasikan. Pengurutan Heap dalam Struktur Data digunakan ketika nilai terkecil (terpendek) atau tertinggi (terpanjang) dibutuhkan secara instan. Penggunaan lainnya termasuk menemukan urutan dalam statistik, menangani antrian prioritas dalam algoritma Prim (juga disebut pohon rentang minimum) dan pengkodean Huffman atau kompresi data.

Demikian pula, berbagai sistem operasi menggunakan algoritme ini untuk pekerjaan dan manajemen proses karena didasarkan pada antrian prioritas.

Mengambil contoh dari kehidupan nyata — Penyortiran Heap dapat diterapkan ke toko kartu sim di mana ada banyak pelanggan dalam antrean. Pelanggan yang harus membayar tagihan dapat ditangani terlebih dahulu karena pekerjaan mereka akan memakan waktu lebih sedikit. Metode ini akan menghemat waktu bagi banyak pelanggan dalam antrean dan menghindari menunggu yang tidak perlu.

Pelajari kursus ilmu data dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Harus Dibaca: Ide & Topik Proyek Struktur Data

Kesimpulan

Untuk setiap jenis algoritma pengurutan atau pencarian, kelebihan dan kekurangan selalu ada. Dengan algoritma Heap Sorting, hanya ada sedikit kelemahan. Tidak ada persyaratan tambahan ruang memori.

Faktor lainnya adalah waktu. Ditemukan bahwa kompleksitas waktu dihitung sebagai nlog(n), tetapi Heap Sort sebenarnya lebih kecil dari O(nlog(n)). Alasannya adalah bahwa pengurangan atau ekstraksi dari Heap Sort mengurangi ukuran dan memakan waktu lebih sedikit saat proses berlangsung.

Oleh karena itu, Heap Sorting dianggap sebagai salah satu algoritme pengurutan "terbaik" karena berbagai alasan di dunia Struktur Data.

Struktur data dan organisasinya adalah salah satu dasar ilmu komputer. Jika pengetahuan logis dan praktis individu kuat, maka mereka dapat menguasai bidang-bidang seperti pemrograman. Ini bukan hanya tentang keunggulan dalam kursus, tetapi seseorang tidak dapat bergerak maju dalam pemrograman tanpa pengetahuan tentang Struktur Data.

Jadi langkah selanjutnya yang harus Anda ambil adalah mendaftarkan diri Anda untuk kursus yang Anda inginkan. Saya akan menyarankan inisiatif Pembelajaran Seumur Hidup UpGrad yang tidak hanya akan mencakup beberapa topik dasar seperti Heap Sort dalam Struktur Data tetapi juga memberi Anda pengetahuan tentang Ilmu Data, Manajemen Teknologi, dan Pemasaran Digital.

Sepuluh Kursus GRATIS dengan Bimbingan Industri, Sesi Langsung, 1-1 Diskusi, Sertifikat, dan banyak lagi. Lihat tautan untuk lebih jelasnya . Jika Anda ingin tahu lebih banyak, jangan ragu untuk terhubung dengan tim penasihat dan pelatih karir ahli kami!

Apa yang dimaksud dengan Heapify?

Proses mengubah pohon biner menjadi struktur data Heap dikenal sebagai Heapify. Pohon biner adalah struktur data dalam bentuk pohon, di mana setiap level diisi, kecuali yang terakhir, dan semua node sejauh mungkin dari satu sama lain. Heap harus berupa pohon biner lengkap, yang berarti bahwa setiap level pohon terisi, kecuali level bawah. Itu diisi dari kiri ke kanan pada tingkat ini. Heap juga harus memenuhi properti heap-order, yang menyatakan bahwa nilai yang disimpan pada setiap node lebih signifikan dari atau sama dengan nilai yang disimpan pada turunannya.

Bagaimana Heap Sort berbeda dari Selection Sort?

Metode pengurutan pemilihan mengurutkan array dengan terus-menerus memilih elemen terkecil dari bagian yang tidak disortir dan menyisipkannya di awal. Setiap iterasi sortir seleksi memilih elemen terkecil dari subarray yang tidak disortir dan memindahkannya ke subarray yang diurutkan. Sebaliknya, heapsort tidak menghabiskan waktu melakukan pemindaian waktu-linear dari wilayah yang tidak disortir. Sebaliknya, itu membuat bagian yang tidak disortir selama pengaturan tumpukan untuk menemukan elemen terbesar di setiap langkah lebih cepat.

Apa aplikasi nyata dari Heap Sorting?

Ada banyak kegunaan Heap Sorting di kehidupan nyata. Ketika kita perlu menemukan nilai Kth terkecil (atau terbesar) dari suatu bilangan, kita dapat menggunakan heaps untuk menyelesaikan masalah dengan cepat dan mudah. Penyortiran dilakukan melalui pembentukan heaps pada algoritma heapsort, yaitu suatu metode untuk mengurutkan item baik dalam min heap maupun max heap. Heap digunakan untuk mengimplementasikan antrian prioritas, dengan prioritas ditentukan oleh urutan pembentukan heap. Karena kompleksitas O( n log(n) ), sistem yang berkaitan dengan keamanan dan sistem tertanam, seperti kernel Linux, menggunakan Heap Sort.