Binary Search Tree (BST) — Phép màu của sự sắp xếp
Hash Table cho phép tìm kiếm cực nhanh O(1), nhưng dữ liệu của nó bị xáo trộn. Nếu người dùng muốn lọc các sản phẩm có giá từ $10 đến $50, Hash Table trở nên vô dụng.
Array cho phép lưu dữ liệu có thứ tự, nhưng nếu bạn muốn chèn thêm một sản phẩm giá $25 vào giữa mảng đang sắp xếp, Array bắt các phần tử khác phải lùi lại, tốn O(n).
Làm sao để có một cấu trúc vừa hỗ trợ Tìm kiếm theo khoảng (Range Search) cực nhanh, lại vừa hỗ trợ Thêm/Xóa mà không bắt ai phải nhường chỗ? Chào mừng bạn đến với cấu trúc nền tảng của mọi Database: Binary Search Tree (BST).
📋 Agenda
Thời gian đọc ước tính: ~10 phút
Sau bài này, bạn sẽ:
- ✅ Hiểu được quy tắc cốt lõi giúp BST có tốc độ cực khủng.
- ✅ Giải thích được sức mạnh của độ phức tạp
O(log n). - ✅ Tự tay implement các thao tác Insert và Search trên BST bằng TypeScript.
- ✅ Nhận diện được điểm yếu chí mạng khiến BST bị suy thoái.
Yêu cầu đầu vào:
- 🔹 Đã nắm vững khái niệm Binary Tree.