.1.1 · Cách học DSA
Ba giai đoạn học thuật toán, đường cong quên & lặp ngắt quãng, vòng lặp tự học, và những lỗi học tập kinh điển khiến bạn học mãi không vào.
.1.2 · Thuật toán là gì
Định nghĩa thuật toán, năm tính chất bắt buộc, mô tả bằng pseudocode và sơ đồ khối, chạy debug từng bước qua ví dụ tìm số lớn nhất.
.2.1 · Đếm thao tác
Vì sao cùng một bài toán nhưng thuật toán này nhanh hơn triệu lần thuật toán kia, cách đo bằng đếm thao tác, và mẹo đánh đổi bộ nhớ lấy tốc độ.
.2.2 · Big-O
Big-O là gì, vì sao nó quan trọng đến vậy, hai quy tắc rút gọn, cách nhìn code đoán Big-O — qua hình dung, chạy debug từng bước và một trò chơi.
.2.3 · Các lớp phức tạp
Đi sâu từng lớp Big-O từ O(1) đến O(2ⁿ) — định nghĩa, ví dụ code, hình dung đời thường và mức tăng trưởng thực tế.
.2.4 · O, Θ, Ω
Trường hợp tốt nhất, xấu nhất và trung bình; phân biệt cận trên (O), cận dưới (Ω) và cận chặt (Θ) một cách trực giác.
.2.5 · Không gian (bộ nhớ)
Đo bộ nhớ thuật toán dùng thêm, phân biệt in-place O(1) với O(n), và đánh đổi thời gian–bộ nhớ.
.2.6 · Amortized
Vì sao một thao tác thỉnh thoảng rất đắt nhưng tính trung bình vẫn rẻ — qua ví dụ mảng động tự nhân đôi.
.3.1 · Đệ quy
Đệ quy là gì, vai trò của base case (điều kiện dừng) và recursive case, qua ví dụ giai thừa chạy debug từng tầng.
.3.2 · Call stack
Mỗi lời gọi hàm chiếm một khung trên ngăn xếp; đệ quy quá sâu hoặc thiếu base case gây tràn ngăn xếp (stack overflow).
.3.3 · Đệ quy ↔ lặp
Mọi đệ quy đều viết lại được bằng vòng lặp; khi nào nên dùng cái nào, và cách chuyển đổi qua lại.
.3.4 · Chia để trị
Mẫu chia để trị — chia bài toán thành các phần nhỏ, giải từng phần rồi ghép lại; nền tảng của merge sort và binary search.
.3.5 · Master Theorem
Cách viết quan hệ truy hồi cho thuật toán đệ quy và dùng Định lý thợ (Master Theorem) để suy ra Big-O nhanh.