- Max Heap
- Min Heap
Max Heap artinya nilai parent lebih besar dibandingkan dengan anaknya
Min Heap artinya nilai parent lebih kecil dibandingkan dengan anaknya
Heaps biasanya diimplementasikan di Array
seperti pada gambar dibawah ini:
Seperti pada gambar, heaps index dimulai dari 1 karena untuk mempermudah melakukan perhitungan sebuah lokasi nodenya
ini adalah rumus indexnya
Parent = x/2
L-Child = 2*x
R-Child = 2*x+1
untuk pencarian data terkecil di Min Heap sudah pasti terletak pada root
untuk pencarian data terbesar di Max Heap sudah pasti terletak pada root
Insertion
Min Heap : apabila pada tree di insert nilai yang kecil dibandingkan dengan parentnya, otomatis akan melakukan penukaran nilai child dengan parentnya, hal ini dilakukan secara terus menerus sampai bertemu parent yang nilainya lebih kecil dibandingkan yang di insert.
Max Heap : apabila pada tree di insert nilai yang besar dibandingkan dengan parentnya, otomatis akan melakukan penukaran nilai child dengan parentnya, hal ini dilakukan secara terus menerus sampai bertemu parent yang nilainya lebih besar dibandingkan yang di insert.
Mix Max Heap : Karena setiap level berbeda beda jenis heap, misalkan pada level 0 itu Min Heap, maka level 1 itu Max Heap, selanjutnya akan ditentukan dengan ganjil genap levelnya. bagaimana insertionnya ? sama seperti Min Heap dan Max Heap hanya saja terdapat perbedaan saat melakukan proses koding atau algorithmnya yaitu setiap mau mengecek antara nilai child dan parentnya, harus memperhatikan levelnya setiap bertemu level genap maka akan melakukan pengecekan insert Min Heap, dan jika bertemu level ganjil akan melakukan pengecekan insert Max Heap.
Deletion
Min Heap : saat mendelete akan mengambil element terakhir pada tree untuk menggantikan posisinya, lalu melakukan downheapmin yang berarti melakukan pengecekan ke anaknya apakah ada nilai yang lebih kecil dari nilai anaknya.
Max Heap : saat mendelete akan mengambil element terakhir pada tree untuk menggantikan posisinya, lalu melakukan downheapmax yang berarti melakukan pengecekan ke anaknya apakah ada nilai yang lebih besar dari nilai anaknya.
Min Max Heap : saat mendelete akan mengambil element terakhir pada tree untuk menggantikan posisinya, lalu melakukan downheapmax/downheap min tergantung pada level berapa yang di delete.
Heap Complexity :
- Searching : O(1)
- Insert : O(log(n))
- Delete : O(log(n))
Applications of Heaps :
- Heap Sort
- Selection Algorithms
- Graph Algoriths
Tries, adalah tree yang setiap nodenya terdapat sebuah huruf, rootnya berisikan empty character
Gambar diatas adalah contoh dari Tries
Sekian penjelasan singkat tentang Heaps dan Tries.
Tidak ada komentar:
Posting Komentar