Khoá học
Thuật toán Cốt lõi — Tìm kiếm, Sắp xếp & Đồ thị
Tìm kiếm nhanh (hashing, BST, cây cân bằng, B-tree, trie, bloom filter), sắp xếp (merge/quick/heap/counting/radix, skip list) và đồ thị (BFS, DFS, topo sort, Dijkstra, Bellman-Ford, Floyd-Warshall, MST, DSU). Dẫn bằng ý tưởng + sơ đồ + độ phức tạp, code pseudocode.

Giảng viên
OLHub Team36 bài đã sẵn sàng · Đọc kỹ, không xem video
3 module
Học theo từng phần, không bị nhồi
Trung cấp
Cần nền tảng cơ bản trước
36 bài
Text-first — đọc kỹ, không xem video
~10.6 giờ
Tự nhịp, học theo tốc độ của bạn
Bạn sẽ học được gì
Sau khoá học, bạn sẽ:
Implement hashing (chaining/open-addressing) và cây tìm kiếm (BST, cân bằng, B-tree, trie)
Compare các thuật toán sắp xếp theo time/space/stability và chọn đúng theo dữ liệu
Design graph traversal (BFS/DFS) và shortest-path (Dijkstra/Bellman-Ford/Floyd-Warshall)
Diagnose khi nào một thuật toán FAIL (Dijkstra với cạnh âm, quicksort worst-case, bloom false-positive)
Chương trình
Nội dung khoá học
3 module sẵn sàng · 36 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Tìm kiếm nhanh — Hashing & Tree
12 bài · ~211 phút
- 01Module 1 — Tìm kiếm nhanh: tổng quan8p
- 02Hash function — Uniform, avalanche, và hashCode/equals contract16p
- 03Open addressing — Probing, Robin Hood và vì sao Java chọn chaining20p
- 04Binary search — Invariant, lower/upper bound và search-on-answer16p
- 05BST — Insert, search, delete và tại sao skewed BST là O(n)18p
- 06Self-balancing tree — AVL vs Red-Black và lý do TreeMap chọn RB19p
- 07B-tree & B+tree — Disk fanout, vì sao DB không dùng AVL/RB18p
- 08Trie — Autocomplete, IP routing, và prefix-friendly dictionary15p
- 09Bloom filter — Probabilistic membership, tiết kiệm RAM15p
- 10Mini-challenge — Autocomplete top-K với Trie + frequency30p
- 11Case Study: MySQL InnoDB B+tree index + Redis dict incremental rehash23p
- 12Module 1 — Tổng kết & cheat sheet13p
02
Sắp xếp & thứ tự
11 bài · ~195 phút
- 01Sắp xếp & thứ tự: tổng quan module6p
- 02Sorting landscape — Comparison vs non-comparison, lower bound n log n19p
- 03Quadratic sorts — Bubble, Selection, Insertion sort18p
- 04Merge sort — Divide & conquer, stable, foundation cho external sort17p
- 05Quick sort — Pivot, partition, và Dual-Pivot trong JDK20p
- 06Binary heap & Heapsort — Build-heap O(n) và priority queue backbone19p
- 07Counting / Radix / Bucket sort — Non-comparison O(n) khi key range nhỏ20p
- 08Skip list — Probabilistic balanced, dễ implement hơn Red-Black tree19p
- 09Mini-challenge — External merge sort: sort 10GB file với 1GB RAM25p
- 10TimSort & Redis ZSET — sort thắng ở production22p
- 11Sắp xếp & thứ tự: tổng kết và cheat sheet10p
03
Đường đi & quan hệ — Graph algorithms
13 bài · ~230 phút
- 01Module Đồ thị: BFS, DFS, Dijkstra, MST10p
- 02Graph representation — Adjacency list vs matrix, trade-off bộ nhớ17p
- 03BFS — Breadth-First Search và unweighted shortest path18p
- 04DFS — Depth-First Search, preorder/postorder, cycle detection17p
- 05Topological sort — Kahn (BFS-based) vs DFS-based, build order DAG16p
- 06Dijkstra — Shortest path trên weighted graph với min-heap5p20p
- 07Bellman-Ford — Negative weight, detect negative cycle13p
- 08Floyd-Warshall — All-pairs shortest path qua DP-on-graph16p
- 09Minimum Spanning Tree — Kruskal vs Prim, cut property19p
- 10Disjoint Set Union — Near-O(1) với path compression + union by rank18p
- 11Mini-challenge — Maze solver: BFS shortest path + path reconstruction30p
- 12Case Study: Maven DAG build order + Google Maps shortest path21p
- 13Module Đồ thị — Tổng kết & cheat sheet15p
Giảng viên
Ai đứng sau khoá này
OLHub Team
Backend engineers
Backend engineers với kinh nghiệm thực tế trên Java/Spring, PostgreSQL, distributed systems. Tự build và maintain platform này, viết toàn bộ nội dung khoá học theo triết lý “hiểu bản chất, không học vẹt”.
Xem hồ sơ team →Gửi khoá này cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Sẵn sàng bắt đầu?
Học miễn phí, không cần thẻ, không thời hạn. Chỉ cần bạn ngồi xuống đọc kỹ.