Big-O vs Big-Θ vs Big-Ω
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.
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.
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.
Đ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ế.
Đ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ớ.
Hệ số tải đo độ đầy của bảng băm; khi quá đầy thì rehash (mở rộng); vì sao trung bình O(1) nhưng xấu nhất O(n).
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.
Độ phức tạp của truy cập, tìm kiếm, chèn, xóa trên mảng — và vì sao chèn/xóa ở đầu hay giữa tốn O(n).
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 độ.