Mọi người có thể chia sẻ cách học thuật toán của mình với em được không ạ?

  1. Lập trình

Từ khóa: 

tech job

,

codebattle2018

,

lập trình

Mình tham gia một số trang submit code online và bắt đầu giải các bài tập trên đó, nhưng dạo gần đây công việc ở công ty bận hơn nên mình áp dụng thuật toán vào giải quyết các bài toán thực tế hơn là ngồi học một cách bình thường

Trả lời

Mình tham gia một số trang submit code online và bắt đầu giải các bài tập trên đó, nhưng dạo gần đây công việc ở công ty bận hơn nên mình áp dụng thuật toán vào giải quyết các bài toán thực tế hơn là ngồi học một cách bình thường

Trước lúc đầu mình hay luyện trên trang

Spoj PTIT
của trường mình, lúc đầu thì làm ở tab basics vừa làm các bài trên đây vừa học qua các thuật toán cơ bản luôn, sau đó mình chuyển dần qua các tab khác như acm, oi,... và từ đấy học thêm các thuật toán mới liên qua đến đồ thị, cấu trúc dữ liệu,... cứ vừa làm vừa học như thế, và từ đó mình học thêm được khá nhiều thuật toán, lúc trước mình có làm
file phân loại các phương pháp
(cái này hơi cũ):

  1. Các thuật toán duyệt đồ thị như DFS, BFS, A*,...
  2. Các thuật toán tìm đường đi ngắn nhất trên đồ thị: Dijkstra, Floyd, BFS,...
  3. Một số cấu trúc dữ liệu cơ bản như: stack, queue, linked list, IT, BIT,...
  4. Các thuật toán sinh: sinh nhị phân, hoán vụ, kỹ thuật quay lui
  5. Quy hoạch động
  6. Ngoài ra còn một số phương pháp khác, và có nhiều bài với phương pháp ad-hoc (theo mình hiểu những bài này có một cách giải cụ thể, có thể không dùng mấy thuật toán trên). Còn khá nhiều loại thuật toán khác, nếu thiếu chỗ nào các bạn bổ sung giúp mình nhá.

Sau này bạn bè và các anh khác chia sẻ với mình nhiều trang khác nhau như:

  1. codeforces: hay tổ chức các contest, có forum trao đổi các phương pháp, cách giải
  2. VNOI (cùng là một trang contest trên Spoj)
  3. ACM PTIT
    (cũng là trang trường mình hay tổ chức contest mỗi cuối tuần vào 2 dịp ACM và contest summer, hiện tại đang diễn ra các contest luyện tập ACM PTIT 2018)
  4. hackerrank

Sau một thời gian luyện mình đọc thêm quyển sách Giải thuật & Lập trình của thầy Lê Minh Hoàng và thỉnh thoảng đọc thêm và cài đặt một số thuật toán khác trên internet, sau đố tìm một số bài trên các trang trên để giải bài liên quan đến cái mình vừa học.

Trên đây là cách mình từng học thuật toán trong 2 năm đầu đại học, hiện tại mỗi cuối tuần mình đều cố gắng làm một contest codeforces, mình nghĩ trên internet còn rất nhiều nguồn và phương pháp học thuật toán khác nhau nữa, bạn có thể tìm hiểu thêm và chia sẻ luôn cho mọi người cùng tìm hiểu.