Repo này tập hợp các thuật toán C++ mình đã học, cài đặt và luyện tập trong suốt 3 năm cấp 3.
Mục tiêu là xây dựng một thư viện thuật toán nhỏ gọn, dễ hiểu, có chú thích đầy đủ để phục vụ học tập và luyện thi.
- Bubble Sort, Selection Sort, Insertion Sort
- Quick Sort, Merge Sort, Heap Sort
- Counting Sort, Radix Sort (mức nâng cao)
- Tìm kiếm tuyến tính (Linear Search)
- Tìm kiếm nhị phân (Binary Search)
- Ứng dụng: lower_bound, upper_bound trong C++
- Stack, Queue, Deque
- Linked List (singly, doubly)
- Tree & Binary Search Tree
- Heap (Min-Heap, Max-Heap)
- Hash Table (cơ bản)
- Fibonacci, nCr (toán tổ hợp)
- Bài toán cái túi (Knapsack Problem)
- Longest Increasing Subsequence (LIS)
- DP trên xâu (Longest Common Subsequence, Edit Distance)
- Biểu diễn đồ thị: adjacency list, adjacency matrix
- BFS, DFS
- Dijkstra (tìm đường đi ngắn nhất)
- Floyd–Warshall, Bellman–Ford
- Kruskal, Prim (cây khung nhỏ nhất – MST)
- Số nguyên tố: Eratosthenes sieve
- Ước chung lớn nhất (GCD) & Bội chung nhỏ nhất (LCM)
- Thuật toán chia để trị (Divide & Conquer)
- Thuật toán tham lam (Greedy)
C-Algorithm/
│── Sorting/ # Thuật toán sắp xếp
│── Searching/ # Thuật toán tìm kiếm
│── DataStructures/ # Cấu trúc dữ liệu
│── DynamicProgramming/ # Quy hoạch động
│── Graph/ # Thuật toán đồ thị
│── Math/ # Thuật toán toán học
│── Others/ # Các thuật toán khác
- Thành thạo cài đặt các thuật toán từ cơ bản đến nâng cao.
- Hiểu rõ độ phức tạp thời gian – bộ nhớ.
- Tự xây dựng một “thuật toán library” cá nhân để áp dụng cho các bài toán thi học sinh giỏi & contest online (Codeforces, AtCoder, LeetCode).
- Rèn luyện tư duy giải thuật.
- Thành thạo cú pháp C++ & STL.
- Biết cách tối ưu code để chạy nhanh hơn.
- Chuẩn bị nền tảng cho các ngôn ngữ & lĩnh vực khác (Python, AI, Backend…).
C-Algorithm không chỉ là nơi chứa code, mà còn là bộ sưu tập thuật toán mình đã viết trong 3 năm cấp 3. Đây là nền tảng giúp mình tự tin bước vào con đường CNTT & lập trình chuyên nghiệp.