Wednesday, July 30, 2014

Implementasi Algoritma Heap Sort dengan C#



Untuk mengimplementasikan algoritma Heap sort pada postingan ane yg ini menggunakan bahasa pemrograman C#, gunakanlah syntax berikut ini :



Pada syntax ini terdapat 3 metode yang digunakan dalam sorting nilai dengan algortima heap sort yaitu HeapSort, Build-Max-Heap, dan Max-Heapfy. Pada metode HeapSort di baris 10 sampai 50 adalah metode untuk deklarasi array Angka dan input nilai pada elemen-elemen yang dimiliki array Angka. Lalu pada baris 51 metode Build-Max-Heap dipanggil untuk mengkoreksi posisi heap tree agar sesuai dengan kondisi Max-Heap, pada metode Build-Max-Heap di baris 78 terdapat for looping dengan kondisi i = (Elements – 1) / 2 dan selama i ≥ 0 for looping akan terus berulang berarti posisi i berada di tengah-tengah heap tree. Pada posisi i adalah index awal yang akan dijadikan acuan untuk mengkorekasi posisi heap tree agar sesuai dengan max-heap setelah index tengah sudah ditemukan maka cara untuk mengkoreksi posisi heap adalah dengan metode Max-Heapfy.

Pada metode Max-Heapfy terapat variabel left, right, dan largest. Dimana left dan right adalah variabel index left dan right child dari node i sedangkan variabel largest digunakan untuk menentukan index mana yang memiliki nilai tertinggi antara node i, left child, dan right child node i. Maka pada metode Max-Heapfy index yang tersimpan dalam variabel largest akan menjadi parent node atau node i, akan tetapi jika largest ≠ i maka metode Max-Heapfy akan kembali memanggil dirinya sendiri karena jika largest ≠ I urutan heap tree tidak sesuai dengan kondisi max-heap.


Lalu setelah Max-Heap sudah terbentuk kembali ke metode HeapSort dimana terdapat for lopping yang memiliki kondisi i = Elements – 1 dan selama i > 0 maka i dikurangi 1. Dan didalam for looping nilai pada index 0 atau root ditukar dengan nilai pada index n atau index terakhir setelah itu jumlah elemen akan dikurangi 1 dan metode heapsort memanggil metode metode Max-Heapfy untuk mengkoreksi urutan heap tree agar sesuai dengan kondisi Max-Heap. Dan berikut adalah demo dari pengaplikasian metode HeapSort dengan C# :


Sekian postingan dari ane semoga bermanfaat, jika ada kesalahan mohon dikoreksi dan dimaklumai :Peace:

No comments:

Post a Comment