Học thuật toán như thế nào?

algorithm

(Cao Hoàng Anh) #1

Chào anh chị,em đang là sinh viên năm nhất ạ
Em đang học thuật toán theo cuốn cấu trúc dữ liệu và giải thuật của Lê Minh Hoàng và em cảm thấy thực sự khó và không biết phải học cái gì vì thấy nó rất nhiều và mông lung
Mong anh chị giúp em đưa ra lộ trình học thuật toán và các thuật toán em nên học ạ


(rogp10) #2

Nên bắt đầu với mấy thuật toán cơ bản với mảng như tìm kiếm tuần tự (find), tính tổng (reduce :smiley: ) , chèn mảng (bao gồm chèn mảng vào giữa một mảng khác), xóa mảng với điều kiện (reject) :smiley:


(vũ xuân quân) #3

làm theo bạn @rogp10. làm theo bước dưới.
tìm trên mạng đoạn code người khác code, copy về.
chạy debug để hiểu cách chạy code.


(Cao Hoàng Anh) #4

Những thuật toán đấy e tự làm đc rồi ạ
Nhưng những bài như DÃY CON LIÊN TIẾP CÓ TỔNG LỚN NHẤT hay một số bài tương tự e có làm đc nhưng chạy rất chậm và thường bị lỗi time limited
Nên học thuật toán ntn để giải quyết những bài kiểu này ạ


(NGUYỄN ĐỨC THẮNG) #5

Nếu đã học xong lập trình cơ bản rồi thì mới học thuật toán. Học cứ chậm từ tốn thôi, học xong chương 1 là đệ quy quay lui trong quyển lê minh hoàng thì tìm trên mạng các bài tập phần đó để luyện, dần dần rồi sẽ ngấm dần, cố gắng hiểu code, hiểu code trước thì mới tự code được.


(Huy Le) #6

Em có thể thử cuốn này https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230

  1. Tác giả assume e không biết gì nên nội dung và hướng tiếp cận đi từ dễ đến khó.
  2. Dùng tiếng anh nên em có thể học vocabulary liên quan đến Algorithm và Data Structure để search thêm tài liệu trên internet.
  3. Nó không dùng code mà dùng hình để mô tả, nên e sẽ tập trung vào thuật toán và cấu trúc hơn là ngôn ngữ.

(Hieu Nguyen Van) #7

Bạn tham khảo câu trả lời của mình ở đây nhé.


(Nhat Vo) #8

khó quá thì bỏ qua nhé :smiley:


(Người bí ẩn) #9

Có thể học những thuật toán cơ bản khác nhưng cái đầu tiên mình nghĩ bạn cần tìm hiểu kỹ & nắm rõ là lý thuyết về đpt tính toán đã :)) cái đó là kiến thức cơ bản mà dân CP nào cũng phải biết, sau này nó sẽ develop dần lên như tính toán đpt của hàm đệ quy, các thuật toán “ảo nhà nó diệu” trên đồ thị …
Sau đó cứ học theo mục lục sách thầy Hoàng ấy, hs chuyên cấp 3 đọc cũng hiểu mà. Sắp xếp thì đọc hiểu bản chất thôi, cài lại được thì càng tốt. Duyệt nhánh cận với mấy cái brute force vẫn cố gắng nên hiểu và áp dụng được vì cơ bản nó là tuyệt kỹ cho dân CP khi ko nghĩ ra được thuật tối ưu cho 1 bài nào đó => vét tests :))
Sang mấy bài DP, DP bitmask với graph thấy nó brainfuck hon nhiều ấy hic


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?