Cách học cấu trúc dữ liệu và giải thuật là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề cách học cấu trúc dữ liệu và giải thuật . Trong bài viết này, coder.com.vn sẽ viết bài Kinh nghiệm cách học cấu trúc dữ liệu và giải thuật mới nhất 2020
Hôm nay, chúng tôi sẽ giới thiệu 10 cuốn sách kinh điển tại mảng này, tất nhiên không xếp theo thứ tự hơn-kém vì theo chúng tôi, mỗi cuốn sách đều cover những chủ đề rất tích cực. Chúng tôi đưa rõ ra 10 biểu hiện, không có nghĩa là bạn phải đọc tổng cộng. Chỉ cần ngấm hết tinh hoa trong 2. cuốn, trình giải thuật của bạn đã khá hơn rất nhiều dev chuyên nghiệp rồi!
Để hỗ trợ độc giả trong công tác tìm kiếm, mỗi đại diện được chúng tôi đề cập đều đi kèm với một tập source code tương ứng.
#1 Data Structures and Algorithms Made Easy – Narasimha Karumanchi
Cuốn này giải nghĩa các cấu trúc dữ liệu cùng với source code C/C++. bạn đọc có thể test song song với đọc. nếu bạn yêu thích Java? Hãy chọn phiên bản “Data Structures and Algorithm Made Easy by Java”. Cuốn này giải thích những định nghĩa cấu trúc dữ liệu xuyên suốt 2. chương với những topic như: Recursion & Backtracking, Linked Lists, Stacks, Queues, Trees, Priority Queues, Heaps, String Algorithms, Algorithms Design Technique… Nó cũng đưa ra nhiều giải pháp đến gần hơn khác nhau cho mỗi lỗi lo, nhờ đấy, độc giả giản đơn hình dung và phân tích được những giải thuật tương ứng cho từng bài toán.
Ngôn ngữ dùng: C/C++
Source Code: https://github.com/careermonk/DataStructuresAndAlgorithmsMadeEasy
#2 Data Structures and Algorithm in Java, 2nd Edition – Robert Lafore
Cuốn này giải nghĩa các concept ở mức chính yếu nhất. kèm theo đó là các gợi ý về solution cho mỗi project ở từng chương. Cuốn này đã từng được sử dụng làm giáo trình cho một khóa học “Cấu trúc dữ liệu và giải thuật”. những chủ đề ở những cuốn sách kiểu này thường hay không khác nhau nhiều, vẫn là các cấu trúc dữ liệu thân quen : Stack, queue, heaps, hashtable…..
Ngôn ngữ sử dụng: Java
Source code: http://www.informit.com/store/data-structures-and-algorithms-in-java-9780672324536
Xem thêm: Hướng dẫn tự lập trình Android cơ bản từ A đến Z
#3 The Algorithm Design Manual, 2nd Edition – Steven S. Skiena
Cuốn sách này sẽ làm cho buổi phỏng vấn của các nàng trơn tru hơn.
Một người thiết kế thuật toán tốt sẽ bắt được những nguyên lý thiết kế căn bản, kèm theo đó là các cấu trúc dữ liệu, dynamic programming, depth first search, backtracking và tìm kiếm heuristic… Cuốn sách này sử dụng Pseudocode. Từ Pseudocode, ta có khả năng chuyển qua bất kỳ ngôn ngữ nào. Khía cạnh lịch sử có sự liên quan đến việc áp dụng những giải thuật xảy ra tại chiến tranh toàn cầu cũng được đề cập trong cuốn này với một góc Nhìn khá thú vị.
The Algorithm Desgin Manual đã được Steve Yegge đề xuất cho các ứng viên phỏng vấn trong Google.
Ngôn ngữ dùng: C/Pseudocode
Source code: http://www3.cs.stonybrook.edu/~algorith/book/programs/
#4 Introduction to Algorithm, 3rd edition – Thomas H.Cormen
Cuốn này cover một phạm vi khá bao la tại cấu trúc dữ liệu, ngoài ra, mỗi topic đều được viết rất sâu. Introduction to Algorithm thích hợp với tất cả đối tượng – từ học viên chưa tốt nghiệp cho đến chuyên gia…
Pseudocode cũng được dùng để thuyết trình các ý tưởng trong cuốn sách này. những topic thuộc giải thuật hiện đại như lý thuyết đồ thị, giải thuật đa luồng đều được đề cập cực kì chi tiết.
Introduciton to Algorithm cũng là một mẹo cần được tu luyện tử tế trước thời gian đi phỏng vấn
Ngôn ngữ dùng: Pseudocode
Source code: https://notebookbft.files.wordpress.com/2015/10/clrs-solution-collection.pdf
#5 Algorithm, 4th Edition – Robert Sedgewick, Kevin Wayne.
Cuốn này được sử dụng phổ biến trong các trường học trên toàn thế giới. Nó tổng hợp và thống kê các thuật toán quan trọng đang được ứng dụng phổ biến cũng như đề cập một bí quyết hết sức cụ thể tới những thuật toán và cấu trúc dữ liệu áp dụng cho công việc tìm kiếm, bố trí, xử lý đồ thị , xử lý xâu ký tự, Tác giả Robert Sedgewick , Kevin Wayne cũng kéo dài một cổng thông tin điện tử bổ sung source code tương ứng. trong tài liệu này, phương ngữ lập trình được dùng là Java.
Ngôn ngữ dùng: Java
Source code: http://algs4.cs.princeton.edu/home/
Bạn hãy cùng Techmaster bào chế cuốn này tại đây
Xem thêm: SQL Injection là gì? Hướng dẫn cách kiểm tra SQL Injection mới nhất 2020
#6 Elements of Programming Interviews in Java: The Insiders’ Guide – Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
The Elements of Programming Interviews hỗ trợ rất hiệu quả cho những buổi phỏng vấn. Tác giả cuốn này phát hành 2 bản, một bản cho ngôn ngữ C và một bản cho Java.
các hướng dẫn trong quyển này bắt đầu với các giải thuật kiểu vét cạn, sau đấy phân tích , đi đến các xác định tốt nhất hơn. tất cả các điểm đều được phân loại dựa theo độ cạnh tranh và những trường hợp có sự liên quan trong thực tế, cùng với đó là các gợi ý có ích, nhờ vậy bạn đơn giản hiểu và ứng dụng các giải thuật này trong công việc thường hay nhật. Cuốn sách này cũng mô phỏng được một phần những phức tạp bạn sẽ vướng phải tại những buổi phỏng vấn.
Ngôn ngữ: Java/C++
Source code: http://elementsofprogramminginterviews.com/solutions
#7 Programming Pearls, 2nd Edition – Jon Bentley
Phương ngữ lập trình được dùng ở đây là ngôn ngữ C.
“Những viên ngọc của lập trình” – Programming Pearls là một bộ sưu tập các điểm kinh điển và khá rộng rãi tại giới lập trình: thuật toán bố trí, tìm kiếm, kiểm thử ứng dụng, bài toán tối ưu, …..Mỗi vấn đề đều kèm theo hướng dẫn , các bài phân tích hết sức cụ thể.
Ngôn ngữ: C
#8 Algorithms in C, 3rd Edition – Robert Sedgewick
Đây chính là một bộ 2. cuốn sách. Chúng được xem là nguồn tài nguyên quý giá dùng cho các nhà nghiên cứu, những developer , thậm chí là cả học viên ngành CNTT.
Cuốn đầu tiên recommend những ý niệm căn bản có sự liên quan tới cấu trúc dữ liệu và giải thuật.
Cuốn thứ hai tích tụ những thuật toán đồ thị với trên 2000 bài tập thực hành. Đi kèm với khối lượng bài tập khổng lồ đấy là các hướng dẫn , mẫu thử code mẫu mực của tác giả.
Ngôn ngữ: C
Source code:
https://www.cs.princeton.edu/~rs/Algs3.c1-4/code.txt
https://www.cs.princeton.edu/~rs/Algs3.c5/code.txt
#9 The Art of Computer Programming, 1st Edition – Donald E. Knuth
đây chính là một tập hợp đồ sộ các giải thuật và phân tích được tổ chức thành 3. phần:
Phần 1 gồm các kiến thức nền có sự liên quan đến toán học và các cấu trúc dữ liệu cốt yếu. Phần 2 dùng cho semi-numerical algorithm. Phần sau cuối tương tự như một cuốn bí kíp toàn tập về những kỹ thuật tìm kiếm , bố trí.
“Nếu bạn là một lập trình viên cứng, hãy đọc cuốn sách này và gửi CV ngay cho tôi nếu bạn hiểu Tất cả mọi thứ trong đó” – Bill Gates
Ngôn ngữ: Pseudocode
Source code: http://www-cs-faculty.stanford.edu/~uno/programs.html
Xem thêm: Các ngôn ngữ lập trình đáng học nhất trong năm 2020
#10 Hacker’s Delight 2nd Edition by Henry S. Warren
bí kíp này sẽ tổng hợp các bí kíp liên quan tới kỹ thuật, giải thuật. mục tiêu chính là giúp bạn lập trình linh hoạt hơn, từ đó gia tăng hiệu suất công việc. những tricks được thuyết trình “chi tiết đến từng bit”. Cuốn sách này cũng chứa một chương trình sửa đổi và cải thiện cho máy tính RISC.
Ngôn ngữ: C
Source code: http://www.hackersdelight.org/hdcodetxt.zip
Nguồn: https://techtalk.vn/