Level 517 bài
Algorithms
Cài và phân tích các thuật toán nền tảng, biết chọn đúng thuật toán.
Chương 26. Searching
Tìm tuyến tính, tìm nhị phân và độ phức tạp.
Chương 27. Sorting
Tám thuật toán sắp xếp, so sánh và cách chọn.
- 27.1Bubble sortBản ngây thơ, cờ dừng sớm, và vì sao nó vẫn đáng học dù không ai dùng.20 phút
- 27.2Selection sortÍt hoán đổi nhất, luôn là O(n bình phương), và vì sao nó không ổn định.18 phút
- 27.3Insertion sortO(n) khi dữ liệu gần sắp, dịch thay vì hoán đổi, và vai trò trong introsort.24 phút
- 27.4Merge sortChia đôi, trộn hai nửa, bộ nhớ phụ, và vì sao nó ổn định.28 phút
- 27.5Quick sortPhân hoạch Lomuto và Hoare, chọn chốt, và cách chặn đệ quy quá sâu.30 phút
- 27.6Heap sortDựng heap tại chỗ, rút gốc n trừ một lần, và O(1) bộ nhớ phụ.26 phút
- 27.7Sắp xếp không so sánhCounting sort, radix sort, và vì sao chúng không phá giới hạn dưới n log n.24 phút
- 27.8So sánh và cách chọnBảng tổng hợp tám thuật toán, introsort mà qsort dùng, và cách đo trung thực.24 phút
Chương 28. Algorithm nâng cao
Chia để trị, tham lam, quy hoạch động, quay lui, đồ thị.
- 28.1Chia để trịBa bước, định lý thợ, lũy thừa nhanh, và cách ước lượng từ công thức truy hồi.26 phút
- 28.2Tham lamHai điều kiện để tham lam đúng, đổi tiền, chọn hoạt động, và mã Huffman.26 phút
- 28.3Quy hoạch độngTừ trên xuống và từ dưới lên, năm bước giải, và bốn bài kinh điển.32 phút
- 28.4Quay luiChọn, đệ quy, bỏ chọn, cắt tỉa, và bài toán tám hậu.26 phút
- 28.5Đồ thị, BFS và DFSMa trận kề và danh sách kề, duyệt theo tầng và theo chiều sâu.30 phút
- 28.6Đường đi ngắn nhất và cây khungDijkstra, Bellman-Ford, Floyd-Warshall, và Kruskal với union-find.32 phút