Sách Cấu Trúc Dữ Liệu Và Giải Thuật, Giáo Trình Cấu Trúc Dữ Liệu Và Giải Thuật

Nói về “ác mộng” của 80% sinh viên CNTT : Cấu trúc dữ liệu và giải thuật, chúng tôi sẽ giới thiệu 10 cuốn sách kinh điểntrong 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 các topic rất tốt. Chúng tôi đưa ra 10 đại diện, không có nghĩa là bạn phải đọctất cả.Chỉ cần ngấmhế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ậpsource code tương ứng.

Đang xem: Sách cấu trúc dữ liệu và giải thuật

#1 Data Structures and Algorithms Made Easy – Narasimha Karumanchi

Cuốn này giải thích các cấu trúc dữ liệu kèm theo source code C/C++. Độc giảcó thể test song song với đọc. Nếu bạn 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 các khái niệm cấu trúc dữ liệu xuyên suốt 21 chương với các chủ đề như: Recursion & Backtracking, Linked Lists, Stacks, Queues, Trees, Priority Queues, Heaps, String Algorithms, Algorithms Design Technique… Nó cũng đưa ra nhiều phương pháp tiếp cận khác nhau cho mỗivấn đề, nhờ đó, độc giả dễ dàng hình dung và phân tíchđược các giải thuậttương ứng cho từng bài toán.

*

Ngôn ngữ sử 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 thích các concept ở mức căn bản 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”. Các topic ở những cuốn sách kiểu này thường không khác nhau nhiều, vẫn là các cấu trúc dữ liệu quen thuộc : 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

#3 The Algorithm Design Manual, 2nd Edition – Steven S. Skiena

Cuốn sách này sẽ giúp cho buổi phỏng vấn của các bạn trơn tru hơn.

Một người thiết kế thuật toán tốt sẽ nắm được những nguyên lý thiết kế cơ 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ó thể chuyển qua bất kỳ ngôn ngữ nào. Khía cạnh lịch sử liên quan đến việc áp dụng các giải thuật xảy ratrong chiến tranh thế giớicũ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 tại Google.

*

Ngôn ngữ sử 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á rộng trong cấu trúc dữ liệu, bên cạnh đó, mỗi topic đều được viết rất sâu. Introduction to Algorithm phù hợp với tất cả đối tượng – từ sinh viên chưa tốt nghiệp cho đến chuyên gia…

Pseudocode cũng được sử dụng để trình bày các ý tưởng trong cuốn sách này. Các chủ đề 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 rất chi tiết.

Introduciton to Algorithm cũng là một bí kíp cần được tu luyện tử tếtrước khi đi phỏng vấn

*

Ngôn ngữ sử 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 rộng rãi tại các trường đại học trên toàn thế giới. Nó thống kê các thuật toán quan trọng đang được áp dụng rộng rãi cũng như đề cập một cách hết sức chi tiết tới các thuật toán và cấu trúc dữ liệu áp dụng cho công việc tìm kiếm, sắp xếp, xử lý đồ thị và xử lý xâu ký tự, Tác giả Robert Sedgewick và Kevin Wayne cũng duy trì một cổng thông tin điện tử cung cấp source code tương ứng. Trong tài liệu này, ngôn ngữ lập trình được sử dụng là Java.

Xem thêm: Hướng Dẫn Cách Vẽ Biểu Đồ Trong Powerpoint 2010, Hướng Dẫn Tạo Biểu Đồ Trên Powerpoint

*

Ngôn ngữ sử dụng: Java

Source code:http://algs4.cs.princeton.edu/home/

Bạn hãy cùng Techmaster nghiên cứu cuốn này tạiđây

#6Elements 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 các 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 đó phân tích và đi đến những lựa chọn tối ưu hơn. Tất cả các vấn đề đều được phân loại dựa theo độ khó và các trường hợp liên quan trong thực tế, kèm theo đó là những gợi ý hữu ích,nhờ vậybạn dễ dàng hiểu và áp dụng các giải thuật này trong công việc thường nhật. Cuốn sách này cũng mô phỏng được một phần những khó khăn bạn sẽ gặp phải trong các buổi phỏng vấn.

*

Ngôn ngữ: Java/C++

Source code:http://elementsofprogramminginterviews.com/solutions

#7Programming Pearls, 2nd Edition –Jon Bentley

Ngôn ngữ lập trình được sử 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 vấn đề kinh điển và khá phổ biến trong giới lập trình: thuật toán sắp xếp, tìm kiếm, kiểm thử phần mềm, bài toán tối ưu, …..Mỗi vấn đề đều kèm theo hướng dẫn và các bài phân tích hết sức chi tiết.

*

Ngôn ngữ: C

#8Algorithms in C, 3rd Edition –Robert Sedgewick

Đây là một bộ 2 cuốn sách. Chúng được coi như nguồn tài nguyên quý giá dành cho các nhà nghiên cứu, các developer và thậm chí là cả sinh viên ngành CNTT.

Cuốn đầu tiên giới thiệu các ý niệm cơ bản liên quan tới cấu trúc dữ liệu và giải thuật.

Cuốn thứ 2 tập trung vào các 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ồ đó là các hướng dẫn và sample 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

#9The Art of Computer Programming, 1st Edition –Donald E. Knuth

Đây là một tập hợp đồ sộcácgiải thuật và phân tích được tổ chức thành 3 phần:

Phần 1 gồmcác kiến thức nềnliên quan đến toán học và những cấu trúc dữ liệu căn bản. Phần 2 dành cho semi-numerical algorithm. Phần cuối cùng giống như một cuốn bí kíp toàn tập về các kỹ thuật tìm kiếm và sắp xếp.

Xem thêm: Hướng Dẫn Cách Vẽ Sơ Đồ Khối Trong Word, Hướng Dẫn Cách Vẽ Sơ Đồ Trong Word

“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

#10 Hacker’s Delight 2nd Edition byHenry S. Warren

Bí kíp này sẽ tổng hợp các mẹo liên quan tớikỹ 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ừ đónâng cao hiệu suất công việc. Các tricks được trình bày “chi tiết đến từng bit”. Cuốn sách này cũng chứa một chương trình tối ưu hóa cho máy tính RISC.

Leave a comment

Your email address will not be published. Required fields are marked *