🌳 Binary Tree Search Algorithm (Binary Search Tree – BST)
Binary Tree Search biasanya merujuk ke pencarian pada Binary Search Tree (BST) — yaitu struktur data pohon di mana:
- Setiap node punya maksimal 2 anak (left & right)
- Nilai di left subtree < root
- Nilai di right subtree > root
📌 Cara Kerja Binary Search Tree
Misalnya kita punya BST seperti ini:
Contoh tree:
50
/ \
30 70
/ \ / \
20 40 60 80
🔍 Algoritma Search pada BST
🎯 Tujuan:
Mencari apakah sebuah nilai ada di dalam tree.
📌 Langkah-langkah:
- Mulai dari root
- Jika nilai = root → ✅ ditemukan
- Jika nilai < root → pergi ke left child
- Jika nilai > root → pergi ke right child
- Ulangi sampai ketemu atau node = null
💻 Pseudocode
function search(node, key):
if node == null:
return false
if key == node.value:
return true
else if key < node.value:
return search(node.left, key)
else:
return search(node.right, key)
🧠 Contoh Pencarian
Misal cari 60
- Bandingkan dengan 50 → 60 > 50 → ke kanan
- Bandingkan dengan 70 → 60 < 70 → ke kiri
- Bandingkan dengan 60 → ✅ ditemukan
⏱ Kompleksitas Waktu
| Kondisi | Time Complexity |
|---|---|
| Best case | O(log n) |
| Average case | O(log n) |
| Worst case (tree skewed) | O(n) |
Jika tree seimbang → sangat cepat (logaritmik)
Jika tree tidak seimbang → bisa seperti linked list
⚙️ Implementasi Contoh (Python)
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def search(root, key):
if root is None:
return False
if key == root.value:
return True
elif key < root.value:
return search(root.left, key)
else:
return search(root.right, key)
🚀 Kenapa Binary Tree Search Penting?
Digunakan dalam:
- Database indexing
- File systems
- Memory management
- Compiler symbol tables
- Ordered data storage
Comments
Post a Comment