Cấu trúc dữ liệu và giải thuật được coi là phần khó nhất của lập trình. Dưới đây, Got It tổng hợp 6 cuốn sách cấu trúc dữ liệu và giải thuật sử dụng Java, C/C++ và Pseudocode nên đọc dành cho các sinh viên ngành CNTT hay các nhà phát triển phần mềm.
Mục lục
1. Sách cấu trúc dữ liệu và giải thuật dùng Pseudocode
Pseudocode không phải là một ngôn ngữ lập trình đúng nghĩa. Nó mô tả dạng plain text của một thuật toán (hoặc đoạn code), nhưng là ngôn ngữ trình bày thuật toán một cách dễ hiểu. Do đó, có rất nhiều cuốn sách cấu trúc dữ liệu và thuật toán dùng ngôn ngữ lập trình Pseudocode.
1.1. Introduction to Algorithm, 3rd edition – Thomas H.Cormen
Tuy có tên là “Introduction” nhưng đây là một cuốn sách viết rất rộng và rất sâu. Ngay cả những chủ đề thuộc giải thuật hiện đại như giải thuật đa luồng hay lý thuyết đồ thị cũng được trình bày chi tiết. Do đó, đây là cuốn sách phù hợp cho nhiều đối tượng, từ chuyên gia cho tới sinh viên ngành CNTT.
1.2. The Art of Computer Programming, 1st Edition – Donald E. Knuth
Cuốn sách được coi như bách khoa toàn thư về thuật toán với cấu trúc 3 phần chi tiết. Phần đầu tiên gồm các kiến thức căn bản liên quan đến toán và những cấu trúc dữ liệu căn bản. Ở phần tiếp theo, sách bàn về các thuật toán semi-numerical. Phần cuối cùng tổng hợp các kỹ thuật tìm kiếm và sắp xếp chi tiết nhất.
2. Sách cấu trúc dữ liệu và giải thuật dùng Java
Java là một ngôn ngữ lập trình được sử dụng nhiều trong cấu trúc dữ liệu. Một vài cuốn sách hay có thể kể đến như Data Structures and Algorithm in Java và Algorithm.
2.1. Data Structures and Algorithm in Java, 2nd Edition – Robert Lafore
Đây là một cuốn sách căn bản, được dùng làm giáo trình cho một số khóa học nền tảng về cấu trúc dữ liệu. Các chủ đề trong sách là những cấu trúc dữ liệu cơ bản như Stack, heaps, queue, hashtable,… Ngoài giải thích các khái niệm, cuốn sách còn gợi ý về các giải pháp cho từng dự án rất chi tiết.
2.2. Algorithm, 4th Edition – Robert Sedgewick, Kevin Wayne.
Algorithm là cuốn sách được dùng tại nhiều trường đại học. Sách trình bày chi tiết các cấu trúc dữ liệu cùng thuật toán quan trọng cho các khâu: tìm kiếm, sắp xếp, xử lý đồ thị và xử lý xâu ký tự. Cùng với Data Structures and Algorithm in Java thì đây cũng là một tài liệu hay về cấu trúc dữ liệu và giải thuật mà bạn nên đọc.
- Tìm hiểu thêm: 3 lý do hàng đầu để chọn ngôn ngữ lập trình Python
3. Sách cấu trúc dữ liệu và giải thuật dùng C/C++
Có rất nhiều tài liệu liên quan đến giải thuật và cấu trúc dữ liệu dùng ngôn ngữ C/C++, bao gồm Algorithms in C và Data Structures and Algorithms Made Easy.
3.1. Algorithms in C, 3rd Edition – Robert Sedgewick
Bộ sách này sử dụng ngôn ngữ lập trình C và gồm 2 tập. Tập 1 của cuốn sách trình bày các khái niệm cơ bản về cấu trúc dữ liệu và giải thuật. Tập 2 đi sâu vào phân tích các thuật toán đồ thị và đi kèm với đó là 2000 bài tập thực hành.
Sách có kèm các hướng dẫn và sample code chuẩn mực của chính tác giả Robert Sedgewick. Đây là một cuốn sách thực hành giúp người đọc nắm rất chắc về thuật toán. Thậm chí, nó có thể coi như một cuốn “từ điển thuật toán” cho các nhà phát triển phần mềm.
3.2. Data Structures and Algorithms Made Easy – Narasimha Karumanchi
Trong 21 chương sách, Data Structures and Algorithms Made Easy giải thích các khái niệm cấu trúc dữ liệu với các chủ đề đa dạng. Một số chủ đề trong sách có thể kể đến như: Recursion & Backtracking, Stacks, Linked Lists, Queues, Trees, Priority Queues, Heaps, String Algorithms, Algorithms Design Technique,…
Trên đây là những cuốn sách căn bản nhất về cấu trúc dữ liệu và thuật toán. Tùy theo loại ngôn ngữ lập trình mà bạn có thể chọn cho mình 2 trong số những cuốn sách cấu trúc dữ liệu và giải thuật để làm tài liệu nghiên cứu