Cấu trúc dữ liệu và giải thuật là phần kiến thức rất quan trọng trong Khoa học máy tính. Không phải ngẫu nhiên khi phỏng vấn vào các công ty công nghệ lớn trên thế giới như Google, Facebook, Amazon, IBM,... họ đều cần người ứng tuyển có một kiến thức nền tảng vững về thuật toán. Không phải ngẫu nhiên lại có nhiều những cuộc thi liên quan đến thuật toán (lập trình thi đấu) đến như vậy. Và ... cũng không phải ngẫu nhiên mà lại có rất nhiều trang để luyện thuật toán. Học thuật toán giúp chúng ta thật sự hiểu sâu gốc rễ của vấn đề và luyện tập các giải quyết chúng trên những dòng code.
Sau thời gian học thuật toán tại đại học, mình thấy có vài vấn đề làm cho việc học môn này trở nên khó khăn đó là:
- Các thuật toán thật sự quá trừu tượng, có cách nào diễn đạt dễ hiểu hơn không?
- Làm sao để biết được khi nào áp dụng thuật toán nào?
- Nhiều tài liệu quá, mà trình bày bằng tiếng Anh khó hiểu!!!
- Học thuật toán để làm cái gì vậy? Sau có dùng đến đâu?
- Lười
Do đó repo này sẽ giúp bạn giải quyết 3 vấn đề đầu tiên, còn 2 vấn đề cuối bạn sẽ tự tìm câu trả lời nha :))
Cuối cùng, Practice make perfect!!!
*Lưu ý: Tất cả các content đang trong quá trình xây dựng, mọi ý kiến đóng góp xin gửi về email: [email protected]
- Thuật toán sinh
- Quay lui, vét cạn
- Chia để trị
- Sắp xếp
- Tham lam
- Quy hoạch động
- Các thuật toán liên quan tới đồ thị
- Các bài toán trên xâu
- Stack
- Queue
- Cây nhị phân
- Đại số tuyến tính
- Số học
- Hình học