Nhập môn cấu trúc dữ liệu và thuật toán

0
832

Cấu trúc dữ liệu và thuật toán là một phần quan trọng trong lập trình. Trong bài viết này, mong rằng có thể giúp được những bạn mới bắt đầu làm quen với cấu trúc dữ liệu và thuật toán.

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

Trong khoa học máy tính, cấu trúc dữ liệu là một cách để lưu trữ dữ liệu trong máy tính sao cho nó thể có sử dụng một cách hiệu quả.

Mình sẽ có một vài ví dụ sau:

  • Để vẽ phả hệ trong gia đình, chúng ta thường dùng cây phả hệ để. Đây cũng là một cách để lưu trữ dữ liệu
Cây phả hệ gia đình ví dụ cấu trúc dữ liệu
Cây phả hệ gia đình ví dụ cấu trúc dữ liệu
  • Trong lập trình, chúng ta có thể lưu một mảng dữ liệu vào array. Đây là một cách lưu trữ dữ liệu.

Mỗi một kiểu dữ liệu sẽ có cách để lưu dữ liệu khác nhau. Từng cách lưu dữ liệu cũng sẽ có điểm tốt và giới hạn riêng. Khi sử dụng vào thực hiện, chúng ta nên lựa chọn cho phù hợp.

Thuật toán là gì?

Thuật toán là một chuỗi các bước được thực hiện theo thứ tự để giải quyết một vấn đề nào đó.

Ví dụ về thuật toán: Mình đang cảm thấy đói và muốn thực hiện một chiếc pizza, vậy nên để giải quyết vấn đề này mình thực hiện theo các bước sau:

  • Bước 1: Bật lò nướng 200 độ C
  • Bước 2: Làm đế bánh pizza
  • Bước 3: Thêm các phần nhân và phô mai cho bánh
  • Bước 4: Cho bánh vào lò để nướng bánh
  • Bước 5: Mình lấy bánh ra khỏi lò

Như vậy, sau khi thực hiện xong các bước mình đã có 1 chiếc pizza để giải quyết vấn đề đói bụng đêm khuya của mình.

Trong lập trình, để có thể tìm kiếm một giá trị nào đó cũng sẽ có rất nhiều thuật toán tìm kiếm khác nhau. Ví dụ: tìm kiếm theo phần tử, tìm kiếm nhị phân.

Tại sao cần phải học cấu trúc dữ liệu và thuật toán?

Hãy lấy một ví dụ, bạn có một nhà kho lưu trũ tất cả những gì bạn cần. Hãy tưởng tượng, bạn không sắp xếp nó mà chỉ thêm đồ vào, sau một thời gian nhà kho của bạn sẽ trở lên lộn xộn, mất nhiều diện tích và khó khăn khi tìm đồ bạn cần.

Điều này cũng tương tự trong lập trình, khi bạn sắp xếp và lưu trữ dữ liệu tốt sẽ giúp bạn viết code nhanh hơn, lưu trữ hiệu quả hơn.

Cấu trúc dữ liệu và giải thuật cũng là những câu hỏi thường gặp khi phỏng vấn.

Một số nguồn học thêm về cấu trúc dữ liệu và thuật toán:

Data Structure and Algorithms (codelearn.io)

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây