1.Khái niệm cấu trúc dữ liệu và giải thuật
1.1 Cấu trúc dữ liệu là gì?
Trong lập trình (hay 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 dữ liệu đó có thể được sử dụng một cách hiệu quả. Có rất nhiều loại cấu trúc dữ liệu khác nhau trong thực tế, mỗi loại sẽ được áp dụng trong mỗi bài toán khác nhau vì thế nên đặt ra một vấn đề trong nhiều hệ thống lớn để có chất lượng và hiệu năng của kết quả tốt cần phụ thuộc rất nhiều vào việc tổ chức và lựa chọn một cấu trúc dữ liệu!
Đọc thêm khái niệm cấu trúc dữ liệu tại đây!
1.2 Giải thuật là gì?
Theo trích dẫn từ Wiki “Trong toán học và khoa học máy tính, một thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn các hướng dẫn được xác định rõ ràng, có thể thực hiện được bằng máy tính, thường để giải quyết một lớp vấn đề hoặc để thực hiện một phép tính.Các thuật toán luôn rõ ràng và được sử dụng chỉ rõ việc thực hiện các phép tính, xử lý dữ liệu, suy luận tự động và các tác vụ khác.”
Trong lập trình máy tính các thuật toán được thiết kế không phụ thuộc vào ngôn ngữ nào, nghĩa là chúng là những hướng dẫn có thể thực hiện với bất kỳ ngôn ngữ nào và đều nhận được kết quả đầu ra như mong đợi.
Đọc thêm khái niệm cấu trúc dữ liệu tại đây!
2.Tại sao phải học cấu trúc dữ liệu và giải thuật?
Các ứng dụng ngày nay càng ngày cho thấy sự phức tạp và trừu tượng bởi vì lượng dữ liệu là rất lớn thế nên có rất nhiều vấn đề phải giải quyết trong việc sử dụng dữ liệu như thế nào cho hiệu quả. Cấu trúc dữ liệu và giải thuật được ra đời và áp dụng để:
- Giải quyết vấn đề tìm kiếm dữ liệu
- Tăng tốc độ xử lý
- Thực hiện được nhiều tác vụ yêu cầu
3.Các ứng dụng của cấu trúc dữ liệu và giải thuật
3.1 Thực hiện được nhiều giải thuật quan trọng:
- Tìm kiếm – giải thuật tìm kiếm mục trong cấu trúc dữ liệu
- Sắp xếp – giải thuật sắp xếp các mục theo một thứ tự nào đó
- Chèn – giải thuật chèn mục vào trong cấu trúc dữ liệu
- Cập nhật – giải thuật cập nhật một mục hiện có trong cấu trúc dữ liệu.
- Xóa – giải thuật xóa một mục hiện có khỏi cấu trúc dữ liệu.
3.2 Giải quyết được một số bài toán kinh điển trong máy tính
- Bài toán tháp Hà Nội
- Đường đi ngắn nhất Dijkstra
- Chuỗi số Fibonacci
- Bài toán cái túi (Knapsack Problem)
4.Điều kiện để học cấu trúc dữ liệu và giải thuật
Điều kiện tiên quyết, trước khi học và thực hành môn cấu trúc dữ liệu và giải thuật bạn đọc hãy chắc chắn rằng bản thân đã từng sử dụng và có hiểu biết cơ bản về một ngôn ngữ lập trình nhất định nào đó.
Các bài viết về cấu trúc dữ liệu và giải thuật trong blog này được thực hiện theo hướng đi cơ bản nhất (nhập môn cấu trúc dữ liệu và giải thuật) nhưng cũng là bước đà cho việc học sâu vào cấu trúc dữ liệu và giải thuật sau này của bạn đọc. Trong blog toàn bộ mã nguồn và hướng dẫn sẽ được sử dụng ngôn ngữ C/C++ để thực thi. Bạn đọc cần ôn lại các kiến thức lập trình C/C++ có thể tìm kiếm tại mục C/C++ của blog!