TỔNG HỢP NGUỒN HỌC CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
ĐẦU TIÊN LÀ CÁC TRANG WEB:
LeetCode — Trang web tốt nhất để thực hành các câu hỏi CTDL>, giao diện người dùng tốt, phần thảo luận tuyệt vời.
GeeksforGeeks — Quá đỉnh cho các bạn sinh viên Khoa học Máy tính, bạn có thể nhận được tất cả các câu hỏi với các giải pháp khả thi và cũng có thể thực hành tại đây.
Techie Delight — Một trang web đơn giản dành riêng cho việc học CTDL>.
usfca — Nguồn tài nguyên chứa các hình ảnh trực quan về các thuật toán được phát triển bởi David Galles, giáo sư tại Đại học San Francisco.
Visualgo — Website cung cấp tất tần tật cấu trúc dữ liệu và giải thuật siêu trực quan và dễ hiểu.
Algorithm Visualizer — Trang web này sẽ giúp bạn trực quan hóa các thuật toán khó hiểu và bạn cũng có thể tự mô phỏng thuật toán của mình với bộ thư viện được xây dựng sẵn (hỗ trợ C++, Javascript, Java).
Cp-Algorithm — Đây là trang web chuyên về thuật toán và lập trình thi đấu.
Một số trang web khác mà bạn có thể tham khảo là InterviewBit và Educative.io.
MỘT SỐ BÀI TOÁN VỀ CTDL>:
Được chọn bởi Striver (take U forward) và Love Babbar.
Về cơ bản, các tài liệu này sẽ giúp bạn giải quyết một số vấn đề đã chọn, giúp nâng cao kỹ năng CTDL> của bạn và bạn phải hiểu các khái niệm và lý do tại sao áp dụng cấu trúc dữ liệu hoặc thuật toán cụ thể trong câu hỏi này, nhưng nhớ học từ từ thôi, dục tốc là bất đạt nhé.
- Striver chứa 180 câu hỏi mà với tốc độ bình thường, bạn có thể hoàn thành trong 2-3 tháng. Nhưng nếu đã có cơ bản về CTD>, bạn có thể hoàn thành chỉ trong vòng 1 tháng mà thôi. Link cho sheet câu hỏi cụ thể và video — Striver’s sheet, video.
- Love chứa 450 câu hỏi, bạn có thể hoàn thành trong 4-5 tháng hoặc 2-3 tháng đối với những người có căn bản. Link cho bạn: — Love’s sheet, video.
Một trang web khá đỉnh để theo dõi tiến độ đống tài liệu trên là 450DSA, sẽ giúp bạn ghi lại lộ trình học và hoàn thiện các câu hỏi.
Nếu bạn đang vội ôn luyện để chuẩn bị phỏng vấn hay thi thố gì đó, bạn nên xem tờ Striver, còn nếu đủ thời gian và rảnh sang thì giải bài ở tờ Love nhé. Cả hai đều đỉnk của đỉnk cả.
Các tài liệu tiếp theo cho mỗi chủ đề trong CTDL> sẽ chủ yếu là các video có trên Youtube. Khi xem xong mỗi video, đừng quên thực hành và làm 1 lượng bài tập nhất định liên quan để có thể hiểu một cách kĩ càng và chuyên sâu nhé.
- Arrays — Đầu tiên và cực kì quan trọng
* Khái niệm cơ bản về mảng — Array lectures by Neso Academy (Dành cho ai bắt đầu học từ con số 0 đúng nghĩa)
* Sliding Window — Aditya Verma
* Sorting — mycodeschool - Greedy — Abdul Bari Sir (từ 3 đến 3.5)
- Hashing — Abdul Bari Sir
- Stack — Aditya Verma
- Queue — Dành cho ai muốn tìm hiểu căn bản: Jenny’s Lecture
- Recursion — Aditya Verma
- Linked List — Vivekanand Khyade Sir
- Binary Trees — Vivekanand Khyade Sir, Kashisk Mehndiratta
- Binary Search Trees — mycodeschool
- Strings —
* Rabin Karp Algo — Abdul Bari Sir, TECH DOSE
* KMP Algo — Abdul Bari Sir, TECH DOSE - Backtracking — Abdul Bari Sir
- Binary Search — Aditya Verma
- Dynamic Programming — Aditya Verma (Những bài giảng đỉnh nhất trên Youtube)
- Heaps — Aditya Verma (Nếu muốn học cơ bản, trước hết bạn nên xem hết các video của Abdul Bari Sir)
- Graphs — TECH DOSE (Nếu muốn học cơ bản, trước hết bạn nên xem hết các video của Abdul Bari Sir)
- Tries — TECH DOSE
Lưu ý: Đây chỉ là những nguồn tài liệu, từ đó bạn có thể tìm hiểu các chủ đề nhưng nhớ là phải luyện tập nhiều câu hỏi về chủ đề này thì mới có thể nắm được câu lệnh tốt. Và cũng đừng chỉ chăm chăm vào những tài nguyên này, hãy khám phá thêm trên Youtube để tìm được những kênh khác thực sự phù hợp với mình.
Các kênh khác bạn có thể đăng ký:
- take U forward
- Love Babbar
- Aditya Verma
- TECH DOSE
- Back To Back SWE
- Vivekanand Khyade — Algorithm Every Day
Ngoài ra, bạn nên tham gia các cuộc thi ngắn (2-3 giờ) trên Codeforces, Codechef và LeetCode để có thể tự kiểm tra, luyện tập sẽ giúp bạn thông minh hơn, nhạy bén hơn và điều này cũng sẽ giúp bạn vượt qua các vòng code online của nhiều công ty.
CÁC BÀI VIẾT TRÊN GROUP:
- Takenotes “Cấu trúc dữ liệu và Giải thuật” – Tomomi Imura: https://www.facebook.com/groups/genzlamit/permalink/6918605724854649/
- LÀM CHỦ CẤU TRÚC DỮ LIỆU & GIẢI THUẬT VỚI LOẠT TIPS CỰC ĐƠN GIẢN: https://www.facebook.com/groups/genzlamit/permalink/6606492742732617/
-
Kiểm tra tư duy và thuật toán bằng những câu hỏi sau (string): https://www.facebook.com/groups/genzlamit/permalink/6039031299478767/
- Hiểu biết về CTDL> sẽ giúp các bác vượt xa nhiều đối thủ trong ngành: https://www.facebook.com/groups/genzlamit/permalink/6954797104568844/
- TẠI SAO “CẤU TRÚC DỮ LIỆU & GIẢI THUẬT” LẠI QUAN TRỌNG?: https://www.facebook.com/groups/genzlamit/permalink/3724372850944635/
- 7 CẤU TRÚC DỮ LIỆU CƠ BẢN MÀ MỌI LẬP TRÌNH VIÊN CẦN NÊN BIẾT: https://www.facebook.com/groups/genzlamit/permalink/5449801485068421/
- 10 cấu trúc dữ liệu thường dùng trong thực tế: https://www.facebook.com/groups/genzlamit/permalink/6246632432051985/
Ngoài ra, đừng quên ghi chú lại tất cả những điều bạn đã học, nó sẽ giúp bạn ôn tập nhanh chóng bất cứ khi nào bạn muốn.
Hi vọng bài tổng hợp này sẽ giúp ích được cho bạn!
Chúc các bạn học tốt <3.
(Nguồn: Anubhav Sinha, GenZ làm IT)