Lịch sử Cấu trúc Dữ liệu: Từ Rơ-le điện đến CPU Cache
· 11 min read
Bạn đã bao giờ tự hỏi: "Tại sao chúng ta phải học Linked List trong khi Array xài vừa dễ vừa nhanh?" hay "B-Tree sinh ra để làm gì khi đã có Binary Search Tree?"
Các sinh viên CNTT thường được dạy Cấu trúc dữ liệu (Data Structures) như những khái niệm toán học khô khan. Nhưng sự thật là: Không có cấu trúc dữ liệu nào tự nhiên sinh ra. Chúng được sinh ra trong máu, mồ hôi và nước mắt của các kỹ sư thời sơ khai để "thích nghi" với sự thiếu thốn và đắt đỏ kinh khủng của bộ nhớ phần cứng.
Bài viết này sẽ đưa bạn cỗ máy thời gian, quay về những năm 1950, để thấy rằng Khoa học máy tính thực chất là cuộc chạy đua giữa Sự thông minh của Thuật toán và Sự giới hạn của Phần cứng.