Cấu trúc dữ liệu là một các lưu dữ liệu trong máy tính sao cho nó có thể được sử dụng một cách hiệu quả. Hiểu đơn giản là tất cả các kiểu dữ liệu, các class/struct mà chúng ta tạo ra đều là cấu trúc dữ liệu
Ví dụ:
- Class Student cũng là một cấu trúc dữ liệu
- Kiểu String cũng là một cấu trúc dữ liệu
- Mảng (Array)
- Danh sách liên kết (LinkedList)
- Ngăn xếp (Stack - FILO)
- Hàng đợi (Queue - FIFO)
- Deque (Double Ended Queue)
- Cây (Tree)
- Đồ thị (Graph)
Giải thuật là một bộ các quy tắc hay quy trình cụ thể nhằm giải quyết một vấn đề nào đó trong một số bước hữu hạn nhằm cung cấp một kết quả từ một tập hợp của các dữ kiệu đưa vào
Ví dụ:
- Cách giải một phương trình bậc 2 cũng là một thuật toán
- Cách tìm số lớn nhất trong 1 mảng, cũng là một thuật toán
- Sắp xếp (Bubble sort, quick sort, merge sort, insertion sort,...)
- Tìm kiếm (Linear Search, Binary Search)
- Đệ quy
- Kỹ thuật băm
- Kỹ thuật duyệt trên đồ thị
- Ứng dụng google map: Thuật toán tìm đường đi ngắn nhất trên đồ thị
- Bài toán chơi cờ người và máy: Thuật toán Brute Force/MinMax
- Giải các trờ chơi như sudoku,...
- Hầu hết các vòng thi kỹ thuật của các công ty đều có phần này
- Các công ty/tập đoàn lớn nước ngoài thường có bài test này là bài test đầu vào
- Trang bị kiến thức để nhận dạng và giải quyết các bài toán khó sau này