Computer Science

Thuật toán Cấu trúc dữ liệu Beginner: Linked List, Stack, Queue, Binary Search Tree.

Intermediate: Heap, Priority Queue, Huffman Tree, Union Find, Tries, Hash Table, Tree Map.

Proficient: Segment Tree, Binary Indexed Tree, Suffix Array, Sparse Table, Lowest Common Ancestor, Range Tree.

Expert: Suffix Automaton, Suffix Tree, Heavy-Light Decomposition, Treap, Aho-Corasick, K-d tree, Link-Cut Tree, Splay Tree, Palindromic Tree, Rope, Dancing Links, Radix Tree, Dynamic Suffix Array.

Giải thuật/ thuật toán Searching(Linear search, Binary search, Ternary search) Sorting (Bubble sort, Insertion sort, Merge sort, Quick sort, Radix sort, …) Các giải thuật tham lam Giải thuật đồ thị(BFS, DFS, Luồng cực đại, Cây khung nhỏ nhất, Đường đi ngắn nhất,…) Giải thuật string(KMP, Z, String search, …) Quy hoạch động … Các bạn có thể tham khảo nguồn hướng dẫn + thực hành luôn ở đây DS: https://www.hackerearth.com/practice/data-structures Algo: https://www.hackerearth.com/practice/algorithms

DS & Algo: https://www.geeksforgeeks.org/

Lộ trình học CTDL & GT phục vụ ôn thi ACM/ICPC, nhưng ai cũng có thể follow: https://github.com/Hieunv1996/ACM-ICPC-Preparation

Nếu bạn muốn đọc tiếng Việt thì có thể tham khảo 2 series của mình, mình vẫn đang viết tiếp :smiley: : DS: https://nguyenvanhieu.vn/cau-truc-du-lieu/ Algo: https://nguyenvanhieu.vn/thuat-toan/

https://leetcode.com/problems/rotate-array/

Các tài liệu bổ sung:

Giải thuật và lập trình - thầy Lê Minh Hoàng Introduction to Algorithms - bản tiếng Việt

Đọc dần dần theo thứ tự

  1. [Concrete-Mathematics-2e] Concrete Mathematics: A Foundation for Computer Science (2nd Edition). Căn bản về toán học.
  2. [an-introduction-to-the-analysis-of-algorithms-2e] An introduction to the analysis of algorithms (2nd edition). Các thuật toán quan trọng, có liên hệ chặt chẽ với cuốn dưới của Knuth
  3. [the-art-of-computer-programming-knuth-vol1] The Art of Computer Programming, của Knuth, Vol 1. Dùng để tham chiếu khi gặp vấn đề với các thuật toán. Sự liên hệ rất chặt chẽ giữa toán học và lập trình
  • Linkedin | Github