Quan hệ giữa cấu trúc dữ liệu và giải thuật, kiểu dữ liệu I
Biểu diễn dữ liệu I
Một trong những mục tiêu chính của tin học là tự động hóa việc giải quyết các bài toán thực tế thông qua máy tính điện tử Thông tin liên quan đến bài toán được mã hóa dưới dạng nhị phân, bao gồm cả dữ liệu và các thao tác cần thực hiện trên dữ liệu đó.
Việc sử dụng biểu diễn dữ liệu nhị phân gây khó khăn cho con người, đặc biệt trong các bài toán lớn và phức tạp Để khắc phục điều này, các ngôn ngữ lập trình bậc cao đã cung cấp các phương pháp biểu diễn dữ liệu trừu tượng, giúp lập trình viên tiết kiệm thời gian và công sức bằng cách giảm thiểu các thao tác sơ cấp trên dữ liệu nhị phân Tính trừu tượng của dữ liệu cho phép người lập trình tập trung vào những đặc điểm chung của các đối tượng trong cùng một lớp, thay vì chú trọng vào những chi tiết riêng lẻ.
Quan hệ giữa cấu trúc dữ liệu và giải thuật, kiểu dữ liệu I
Dựa vào bản chất của từng nhóm dữ liệu, các đối tượng dữ liệu được phân chia thành các lớp khác nhau Mỗi lớp dữ liệu được đại diện bởi một kiểu dữ liệu cụ thể Kiểu dữ liệu T là một tập hợp, trong đó mỗi phần tử được gọi là một thể hiện của kiểu đó.
Giải thuật là một dãy câu lệnh rõ ràng, xác định trình tự thao tác trên các đối tượng dữ liệu (input) để đạt được kết quả mong muốn (output) sau một số bước thực hiện nhất định Giải thuật không chỉ phản ánh các phép xử lý mà còn liên quan chặt chẽ đến dữ liệu, bao gồm dữ liệu đầu vào, dữ liệu trung gian và kết quả cuối cùng Mỗi lớp dữ liệu đều có các thao tác cơ bản gắn liền với chúng, và khi cách biểu diễn dữ liệu thay đổi, các thao tác tương ứng cũng sẽ thay đổi theo.
Nếu không xử lý đúng cách, chương trình có thể trở nên gượng ép, thiếu tự nhiên, khó hiểu và phức tạp không cần thiết Điều này dẫn đến hiệu quả thấp và lãng phí tài nguyên máy tính, bao gồm CPU và bộ nhớ.
Trong lập trình, một chuỗi ký tự có thể được biểu diễn theo ít nhất hai cách khác nhau, như trong ngôn ngữ Pascal và C Mỗi cách biểu diễn này sẽ dẫn đến những phương pháp xây dựng thao tác tương ứng khác nhau.
Trong các chương tiếp theo, sẽ được trình bày rõ hơn về việc lưu trữ dãy các phần tử dữ liệu cùng loại Có hai phương pháp chính để thực hiện điều này: lưu trữ bằng mảng (có thể là tĩnh hoặc động) và lưu trữ bằng danh sách liên kết động Mỗi phương pháp sẽ ảnh hưởng đến cách thức thực hiện các thao tác cơ bản như chèn, xóa và sắp xếp, dẫn đến hiệu quả khác nhau trong quá trình xử lý dữ liệu.
Do ó, khi nói ến một kiểu dữ liệu T, ta thường chú ý ến hai ặc trưng quan trọng và liên hệ mật thiết với nhau:
- tập V các giá trị thuộc kiểu, ó là tập các giá trị hợp lệ mà ối tượng kiểu T có thể nhận và lưu trữ;
- tập O các phép toán (hay thao tác xử lý) xác ịnh có thể thực hiện trên các ối tượng dữ liệu kiểu ó
Trong ngôn ngữ lập trình C++, có một số kiểu dữ liệu sơ cấp như số nguyên, số thực, ký tự và lôgic Đối với kiểu số nguyên, các phép toán thường gặp bao gồm các phép toán số học như cộng (+), trừ (-), nhân (*), chia nguyên (/), và phép lấy phần dư (%), cùng với các phép toán so sánh như bằng (==), khác (!=), lớn hơn hoặc bằng (≥), nhỏ hơn hoặc bằng (≤), lớn hơn (>) và nhỏ hơn (