Min Heap
Di dalam konsep Min Heap, node yang berada dibawahnya atau parent nilainya akan lebih kecil dibandingkan dengan node anaknya. Maka dapat disimpulkan node root merupakan node dengan nilai paling kecil , dan salah satu node dari leaf node merupakan node yang nilainya paling besar .
Contoh:
Insertion dalam Min Heap:
Jika kita akan menginsert sebuah angka, maka kita harus meletakkan node tersebut di tempat setelah terakhir. Lalu, kita cek kondisi dengan parent nya, jika node tersebut lebih besar dari parent nya maka di swap, lakukan cara tersebut sampai root
Contoh:
Deletion dalam Max Heap:
Jika kita akan menghapus suatu node, maka node yang akan menggantikan adalah node yang paling terakhir. Setelah itu cek kondisi dengan child nya, jika node tersebut lebih besar dari child nya maka di swap, lakukan cara tersebut sampai leaf
Contoh:
Max Heap
Konsep Max Heap hanya berbeda sedikit , perbedaannya hanya ada di node paling atas akan memiliki node dengan nilai terbesar dan salah satu node dari leaf node akan memiliki nilai yang terkecil
Min Max Heap
Konsep Min Max Heap adalah level root akan bernilai minimum, selanjutnya akan bernilai maximum, dan seterusnya. Nilai terkecil berada di root dan nilai terbesar berada di salah satu node pada level setelah root. Level min hanya dapat dibandingkan dengan level min, dan sebaliknya.
Contoh:
Insertion dan Deletion sama seperti Min Heap atau Max Heap namun, pengecekan kondisi hanya dapat dilakukan di level sesama min atau max
Tries Concept
Berasal dari kata reTRIEval yang berarti untuk menyimpan asosiatif array dan jika dalam aplikasinya trie concept ini seperti auto-complete.
Contoh:
Hashing
Menntransformasikan string ke kata yang lebih pendek/key yang merepresentasikan original string-nya. Dengan tujuan untuk mempermudah pencarian.
Contoh:
Nama Key
Kura-kura K
Pecel Goreng P
Nasi Uduk NU
Nasi Putih NP
Hash Table
h[] Value
0 atan
1
2 char
3 define
4 exp
5 float
.
.
25
Hash Function
⦁ Mid Square , mengambil tengahnya
⦁ Division, jumlah yang dimodulus lalu diambil indexnya
⦁ Folding, dibagi lalu digabung lagi
Collision
Kondisi dimana terdapat 2 value dengan awalan yang sama, maka ada cara menangani collision ini:
1. Linear Probling, mencari yang setelahnya kosong
h[] value Step
a 0 Anggur 1
b 1 Apel 2
c 2 Carrot 1
d 3 Durian 1
e 4 Belimbing 4
f 5 Fuji 1
g 7 Grape 1
2.Chaining, sesuai abjad(Linked List)
h[] value
0 anggur->apel
1 belimbing
2 carrot
3 durian
4
5 fuji
6 grape
Tidak ada komentar:
Posting Komentar