Skip to content

Repository files navigation

Giới thiệu

Cấu trúc dữ liệu là gì?

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

Các cấu trúc dữ liệu điển hình

  • 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à gì?

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

Các giải thuật phổ biến

  • Sắp xếp (Bubble sort, quick sort, merge sort, insertion sort,...)
  • Tìm kiếm (Linear Search, Binary Search)

các thuật toán phổ biến

  • Đệ quy
  • Kỹ thuật băm
  • Kỹ thuật duyệt trên đồ thị

Ứng dụng trong thực tế

  • Ứ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,...

Tại sao phải học CTDL&GT

  • 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

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages