Bỏ qua để đến nội dung

📚 Thuật ngữ DSA thường gặp

Khi đọc tài liệu giải thuật hoặc luyện tập trên các trang như LeetCode, bạn sẽ gặp rất nhiều thuật ngữ tiếng Anh. Dưới đây là bảng tổng hợp những thuật ngữ phổ biến nhất, được nhóm theo chủ đề để bạn dễ tra cứu.

Thuật ngữ (English)Tiếng ViệtGiải thích ngắn gọn
ArrayMảngTập hợp phần tử lưu liên tiếp trong bộ nhớ, truy cập theo chỉ số.
Linked ListDanh sách liên kếtChuỗi các node liên kết với nhau qua con trỏ.
StackNgăn xếpCấu trúc LIFO - vào sau ra trước.
QueueHàng đợiCấu trúc FIFO - vào trước ra trước.
DequeHàng đợi hai đầuCho phép thêm/xóa ở cả hai đầu.
Hash TableBảng bămLưu trữ theo cặp key-value, tra cứu gần như O(1).
Hash CollisionVa chạm bămHai key khác nhau bị ánh xạ vào cùng một vị trí trong bảng băm.
Binary TreeCây nhị phânMỗi node có tối đa hai node con.
Binary Search Tree (BST)Cây tìm kiếm nhị phânCây nhị phân có thứ tự: trái nhỏ hơn gốc, phải lớn hơn gốc.
AVL TreeCây AVLCây tìm kiếm nhị phân tự cân bằng chiều cao.
Balanced TreeCây cân bằngCây có chiều cao hai nhánh con luôn chênh lệch trong giới hạn cho phép.
HeapĐống (Heap)Cây nhị phân gần hoàn chỉnh, thỏa tính chất min-heap hoặc max-heap.
Priority QueueHàng đợi ưu tiênCấu trúc lấy ra phần tử có độ ưu tiên cao nhất trước, thường cài bằng heap.
GraphĐồ thịTập hợp đỉnh (vertex) và cạnh (edge) nối giữa chúng.
Adjacency ListDanh sách kềBiểu diễn đồ thị bằng danh sách các đỉnh kề của từng đỉnh.
Adjacency MatrixMa trận kềBiểu diễn đồ thị bằng ma trận đánh dấu cạnh giữa các đỉnh.
Thuật ngữ (English)Tiếng ViệtGiải thích ngắn gọn
BFS (Breadth-First Search)Duyệt theo chiều rộngDuyệt đồ thị/cây theo từng lớp, dùng hàng đợi.
DFS (Depth-First Search)Duyệt theo chiều sâuDuyệt đồ thị/cây đi sâu hết một nhánh rồi quay lại, dùng đệ quy hoặc ngăn xếp.
Binary SearchTìm kiếm nhị phânTìm kiếm trong dãy đã sắp xếp bằng cách chia đôi phạm vi tìm mỗi lần.
Linear SearchTìm kiếm tuyến tínhDuyệt tuần tự từng phần tử để tìm mục tiêu.
TraversalDuyệtQuá trình đi qua toàn bộ phần tử của một cấu trúc dữ liệu.
Preorder / Inorder / PostorderDuyệt trước / giữa / sauBa cách duyệt cây nhị phân dựa trên thứ tự thăm gốc so với hai cây con.
Topological SortSắp xếp tô pôSắp xếp các đỉnh của đồ thị có hướng sao cho cạnh nào cũng đi từ đỉnh trước đến đỉnh sau.
RecursionĐệ quyHàm gọi lại chính nó để giải bài toán con nhỏ hơn.
Base CaseĐiều kiện dừngTrường hợp đơn giản nhất khiến đệ quy dừng lại, không gọi tiếp.
MemoizationGhi nhớ (Top-down)Lưu lại kết quả bài toán con đã tính để tránh tính lại, thường đi cùng đệ quy.
TabulationLập bảng (Bottom-up)Giải bài toán con nhỏ trước, lưu vào bảng rồi suy ra bài toán lớn hơn.
Dynamic ProgrammingQuy hoạch độngKỹ thuật giải bài toán bằng cách chia nhỏ và tái sử dụng kết quả bài toán con.
Optimal SubstructureCấu trúc con tối ưuLời giải tối ưu của bài toán lớn được xây từ lời giải tối ưu của bài toán con.
Overlapping SubproblemsBài toán con trùng lặpCác bài toán con được tính đi tính lại nhiều lần nếu không lưu kết quả.
Greedy AlgorithmThuật toán tham lamLuôn chọn lựa chọn tốt nhất tại mỗi bước, không xét lại về sau.
Divide and ConquerChia để trịChia bài toán thành các phần nhỏ hơn, giải riêng rồi ghép kết quả lại.
BacktrackingQuay luiThử một lựa chọn, nếu không dẫn đến lời giải thì quay lại và thử lựa chọn khác.
PruningCắt tỉaBỏ qua sớm những nhánh chắc chắn không dẫn đến lời giải hợp lệ.
Two PointersHai con trỏDùng hai chỉ số di chuyển trên dãy để giảm độ phức tạp so với duyệt lồng nhau.
Sliding WindowCửa sổ trượtDuy trì một đoạn con liên tiếp và trượt dần qua dãy để tính toán hiệu quả.
Thuật ngữ (English)Tiếng ViệtGiải thích ngắn gọn
Time ComplexityĐộ phức tạp thời gianƯớc lượng thời gian chạy tăng theo kích thước đầu vào.
Space ComplexityĐộ phức tạp không gianƯớc lượng bộ nhớ sử dụng tăng theo kích thước đầu vào.
Big O NotationKý hiệu Big OCách biểu diễn cận trên của độ phức tạp khi đầu vào tiến tới vô cực.
AmortizedKhấu hao (trung bình)Độ phức tạp trung bình trên nhiều thao tác, dù một vài thao tác riêng lẻ có thể chậm hơn.
In-placeTại chỗThuật toán chỉ dùng thêm rất ít bộ nhớ phụ, không cần cấu trúc dữ liệu mới.
Stable SortSắp xếp ổn địnhGiữ nguyên thứ tự tương đối giữa các phần tử có giá trị bằng nhau.
Thuật ngữ (English)Tiếng ViệtGiải thích ngắn gọn
Load FactorHệ số tảiTỷ lệ giữa số phần tử đang lưu và tổng số ô của bảng băm.
Collision ResolutionXử lý xung độtCác chiến lược xử lý khi hai key bị băm vào cùng một vị trí.
ChainingNối chuỗiXử lý xung đột bằng cách lưu nhiều phần tử tại cùng một ô dưới dạng danh sách liên kết.
Open AddressingĐịa chỉ mởXử lý xung đột bằng cách tìm một ô trống khác trong chính bảng băm.

Xem thêm: Giới thiệu