Chọn cấu trúc mà các thao tác thường xuyên nhất của nó rẻ nhất cho mẫu truy cập của bạn. Bắt đầu bằng cách liệt kê các thao tác bạn sẽ thực hiện, ước lượng tần suất của chúng, sau đó khớp chúng với điểm mạnh của một cấu trúc.
Một danh sách kiểm tra quyết định
text
1. Bạn truy cập dữ liệu thế nào? theo index -> array
theo key -> hash map
theo thứ tự-> tree / heap
2. Cần thứ tự? sắp xếp -> balanced BST / sorted array
FIFO -> queue
LIFO -> stack
3. Chèn ở giữa thường xuyên? -> linked list
4. Cần "đã thấy chưa?" nhanh -> set / hash map
5. Cần "tốt nhất/min/max tiếp" -> heap (priority queue)
