0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
28 tayangan6 halaman
Binary search tree adalah struktur data yang mengurutkan data secara biner sehingga memungkinkan pencarian data secara efisien dalam waktu O(log n) secara rata-rata. Algoritmanya melakukan perbandingan nilai data yang dicari dengan nilai root node, kemudian melanjutkan pencarian ke subtree kiri atau kanan.
Binary search tree adalah struktur data yang mengurutkan data secara biner sehingga memungkinkan pencarian data secara efisien dalam waktu O(log n) secara rata-rata. Algoritmanya melakukan perbandingan nilai data yang dicari dengan nilai root node, kemudian melanjutkan pencarian ke subtree kiri atau kanan.
Binary search tree adalah struktur data yang mengurutkan data secara biner sehingga memungkinkan pencarian data secara efisien dalam waktu O(log n) secara rata-rata. Algoritmanya melakukan perbandingan nilai data yang dicari dengan nilai root node, kemudian melanjutkan pencarian ke subtree kiri atau kanan.
Binary search tree Salah satu algoritma pencarian data yang menggunakan struktur tree yang terurut dalam proses pencarian. struktur data yang mengadopsi konsep Binary Tree. Binary tree dapat didefinisikan sebagai pohon yang mempunyai akar dengan jumlah cabang (anak) maksimum dua, yang saling terpisah yang nantinya disebut dengan cabang kiri dan cabang kanan. namun BST terdapat aturan yang harus dipenuhi yaitu. – semua data dibagian kiri subtree dari node x selalu lebih kecil dari data dalam node x itu sendiri. – semua data dibagian kanan subtree dari node x selalu lebih besar atau sama dengan data dalam node x. membuat BST Algoritma addBST(root, newNode) if (empty tree) { a. Jika tree kosong, maka node baru Set root to newNode sebagai root node Return newNode End if b. Jika tidak kosong nilai node If (newNode<root) return addBST(left subnode, newNode) dibandingkan dengan nilai root Else return addBST(right subnode, newNode) c. Jika lebih kecil buat node di end addBST subtree kiri, bila lebih besar buat node di subtree kanan.
Contoh Diketahui deret bilangan :
15 6 18 17 20 3 7 2 4 13 9 Pencarian pada BST Algoritma searchBST (x,k) Pencarian data dilakukan secara If (empty tree) Not Found rekursif, dimulai dari node root (x). return Null Jika data yang dicari (k) lebih kecil End if if (k < x) daripada data node root (x), maka return searchBST(x.left, k) else if (k > x) pencarian dilakukan disebelah data else return searchBST(x.right, k) subtree sebelah kiri, sedangkan jika found k data yang dicari lebih besar daripada return x end if data node root, maka pencarian end TreeSearch dilakukan di subtree sebelah kanan. Jika data yang dicari sama dengan data suatu node berarti data ditemukan Contoh BST • Sebagai contoh dilakukanlah pencarian nilai k=4 dari tree Running Time • Running time dari fungsi Tree-Search adalah O(h) dimana h adalah tinggi atau height dari tree. Dalam operasi pencarian nilai di dalam BST akan menghasilkan best case, worst case dan average case sebagai berikut: 1. Best Case Kompleksitas untuk kasus terbaik dari algoritma ini terjadi ketika node pertama berisi elemen yang dicari. Sehingga dapat dinotasikan dengan 𝑶(𝟏). . 2. Worst Case Kompleksitas untuk kasus terburuk dari algoritma ini terjadi ketika node pada sisi kiri dan kanan tidak seimbang, misalnya node-node hanya terletak di sebelah kiri dan sebelah kanan kosong (BST membentuk seperti linked list). Sehingga dapat dinotasikan dengan 𝑶(𝒏). 3. Average Case Kompleksitas untuk kasus rata- rata dari algoritma ini terjadi ketika node di sisi kiri dan kanan seimbang. Ketika hal itu terjadi maka akan didapatkan persamaan seperti berikut: 𝑻(𝒏)=(𝒏−𝟏)+ (𝑻(𝟎)+𝑻(𝟏)+⋯+𝑻(𝒏−𝟏)) .....(1) Dari persamaan diatas, dapat disimpulkan bahwa kompleksitas pada kasus rata-rata dapat dinotasikan dengan 𝑶(𝒍𝒐𝒈𝒏).