Anh Đạt có thể gợi ý 1 vài cuốn sách bằng tiếng Việt tốt về giải thuật trước không ạ?
Gợi ý 1 vài cuốn sách bằng tiếng Việt tốt về giải thuật?
Sách giải thuật của thầy Lê Minh Hoàng
Nhưng mà Đạt quên Pascal lâu rồi, đọc quyển này khô khan lắm. Đạt đang làm một khóa học về CTDL và GT.
Nội dung thế này, bạn có thể tìm hiểu các nội dung giống như outline bên dưới.
I. Giới thiệu chương trình
1. Mục đích & mục tiêu của chương trình
2. Giới hạn của chương trình
3.
II. Đánh giá độ phức tạp của giải thuật
1. Các bước phân tích thuật toán
2. Sự phân lớp độ phức tạp của thuật toán
3. Phân tích trường hợp trung bình
4. Luyện tập & câu hỏi
III. Các thuật toán tìm kiếm
1. Tìm kiếm tuyến tính (Linear search)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
2. Tìm kiếm nhị phân (Binary search)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
3. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
IV. Các thuật toán sắp xếp
1. Chọn trực tiếp (Selection sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
2. Chèn trực tiếp (Insertion sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
3. Đổi chỗ trực tiếp (Interchange sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
4. Nổi bọt (Bubble sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
5. Shaker sort
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
6. Chèn nhị phân (Binary Insertion sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
7. Quick sort (Binary sort)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, , cách chọn phần tử trung vị (pivot), ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
8. Shell sort
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
9. Heap sort
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
10. Merge sort
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
11. Radix sort
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá: độ phức tạp, ưu điểm, khuyết điểm.
Mức độ phổ biến: khi sử dụng & khi phỏng vấn
9. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
V. Queue & Stack
1. Hàng đợi (Queue)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
2. Ngăn xếp (Stack)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
3. Hàng đợi ưu tiên (Priority Queue)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
4. Hàng đợi hai đầu (Double-Ended Queue)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
5. Ngăn xếp xoay vòng (Circle stack)
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
6. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
VI. Danh sách liên kết
1. Danh sách liên kết đơn
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức dslk, search/insert/delete/
Thuật toán sắp xếp trên dslk đơn
2. Danh sách liên kết đôi
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức dslk đôi, search/insert/delete
Thuật toán sắp xếp trên dslk đôi
3. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
VII. Cây nhị phân
1. Cây nhị phân (Binrary Tree)
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức cây nhị phân, tìm kiếm LNR/LRN/NLR, insert/delete node, duyệt cây theo chiều rộng, duyệt cây theo chiều sâu
Đánh giá
2. Cây nhị phân tìm kiếm (Binary Search Tree)
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức BST, tìm kiếm LNR/LRN/NLR, insert/delete node, duyệt cây theo chiều rộng, duyệt cây theo chiều sâu
Đánh giá
3. Cây cân bằng (AVL Tree)
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức BST, tìm kiếm LNR/LRN/NLR, insert/delete node, duyệt cây theo chiều rộng, duyệt cây theo chiều sâu, nhận biết và tái cân bằng cây nhị phân
Đánh giá
4. 2-3 Tree
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức BST, tìm kiếm LNR/LRN/NLR, insert/delete node, duyệt cây theo chiều rộng, duyệt cây theo chiều sâu
Đánh giá
5. B-Tree
Định nghĩa, Phân tích & Thuật toán
Code C++: tổ chức BST, tìm kiếm LNR/LRN/NLR, insert/delete node, duyệt cây theo chiều rộng, duyệt cây theo chiều sâu
Đánh giá
6. Infix, Postfix & Prefix notations
Định nghĩa, Phân tích & Thuật toán
Code C++
Đánh giá
7. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
VIII. Cấu trúc dữ liệu nâng cao (optional)
1. Kỹ thuật đánh số chỉ mục (Indexing)
Định nghĩa, Phân tích & Thuật toán
Thuật toán
Code C++
2. Bảng băm (Hash table)
Định nghĩa, Phân tích & Thuật toán
Thuật toán: kỹ thuật băm, giải quyết đụng độ (collision)
Code C++: kỹ thuật băm, giải quyết collision, search/insert/delete
3. Đồ thị (Graphs)
Định nghĩa, Phân tích & Thuật toán
Thuật toán: A-star, Prim, Kruskal, Dijsktra...
Code C++: các thuật toán, duyệt đồ thị (theo chiều rộng, theo chiều sâu)
4. Ôn tập cuối chương
Bài tập luyện tập
Các câu hỏi thường gặp khi phỏng vấn
IX. Luyện tập tổng hợp
1. Bài toán thực tế và giải pháp
Cảm ơn anh Đạt, em sẽ bookmark và nghiên cứu.
Khóa CTDL này nằm trong khóa C++ 2016 đúng k anh??
Nằm riêng ra em. Vì khóa C++ anh đã thêm vào OOP rồi. Nên sẽ bắt đầu rất dài, có thể lên tới 300 videos.
Nên khóa này anh chuẩn bị song song. Khi nào OOP xong anh sẽ làm
Sách cẩm nang giải thuật của Nguyễn Phúc Trường sinh cũng hay, sách dich và chuyển từ pascal ->C. sách này đang gối đầu đây
Em nhận thấy 1 điều, những người đã đi làm hay thầy giáo đều có chung 1 suy nghĩ, học tốt giỏi thuật, nắm vững căn bản thì học ngôn ngữ nào, công nghệ nào, làm dự án gì cũng ok hết.
Chắc đây là kinh nghiệm đúc kết từ những người đi trước.
Thay vì cày nhiều ngôn ngữ, tập trung cày căn bản C/C++ và giải thuật .
Sẽ sớm đăng ký khóa học C++ trên Ucademy của anh Đạt và sẽ tiếp tục ủng hộ khóa CTDL & GT của anh trong thời gian tới.
Chỗ mình còn quyển nào khác nữa không
Tốt nhất nên là GT dùng C/C++ để mô tả nhá
-
Giải Thuật và Lập Trình (DSAP Textbook) của thầy Lê Minh Hoàng
-
Bộ “Tài liệu giáo khoa chuyên tin” gồm 3 cuốn lý thuyết và các cuốn bài tập (không rõ số lượng) của các cây đại thụ trong lập trình thuật toán Việt nam (thầy Hồ Sĩ Đàm, thầy Lê Minh Hoàng, thầy Đỗ Đức Đông, thầy Nguyễn Thanh Hùng)
-
150 bài toán tin (chỉ bài tập)
Đây là cái tư tưởng của những người học thuật toán nhiều nên thần thánh hoá nó quá lên thôi nhé ;).
Thuật toán chỉ là cái nền. Công nghệ/ngôn ngữ muốn giỏi là phải nắm vững các khái niệm cơ bản của nó, syntax, API, cần thời gian làm việc tiếp xúc. Không phải cứ rành về động cơ là đua xe giỏi, không phải cứ thuộc status skill tướng là đánh dota giỏi.
Vì cái suy nghĩ thần thánh hoá thuật toán quá nên Việt Nam thi ACM thì giải này giải nọ mà phần mềm nổi tiếng thì ko có, thư viện Open Source nổi tiếng ko có, Software Engineer mà có tầm ảnh hưởng cũng ko có nốt
Mọi người cho mình hỏi, mình nhớ thầy Hoàng có 2 cuốn, 1 cuốn là giải thuật lập trình như ở trên, còn 1 cuốn nữa mình không nhớ rõ tên nó là thuật toán ứng dụng hay tin học thuật toán gì đó. Mình tìm mãi mà không thấy có. Mọi người có biết chỉ mình với. Cảm ơn mọi người.
Có phải Tài liệu chuyên Tin (3 tập) không? Quyền này thầy Hoàng cùng với nhiều thầy khác viết.
Ah, mình thấy rồi, nó là quyển 1 ở đây: Giáo trình Giải thuật & Lập trình - Lê Minh Hoàng [PDF]
bạn có thể chia sẽ cho mình và mọi người quyển Sách cẩm nang giải thuật của Nguyễn Phúc Trường Sinh được không. mình tìm mãi không ra
Trên này thấy có này