Bài 12. Các kiểu dữ liệu nâng cao và thuật toán sắp xếp
I: Mục tiêu bài học:
Sau khi hoàn thành bài học này, người học sẽ:
Hiểu được các kiểu dữ liệu nâng cao trong C như
struct
,union
, vàenum
.Biết cách sử dụng các cấu trúc dữ liệu này trong lập trình.
Nắm vững các thuật toán sắp xếp cơ bản như sắp xếp nổi bọt (Bubble Sort), sắp xếp chọn (Selection Sort) và sắp xếp chèn (Insertion Sort).
Áp dụng được các thuật toán sắp xếp vào bài toán thực tế.
II: Nội dung bài học:
1. Các kiểu dữ liệu nâng cao
Trong ngôn ngữ lập trình C, ngoài các kiểu dữ liệu cơ bản như int
, float
, char
, C còn cung cấp các kiểu dữ liệu nâng cao giúp tổ chức và quản lý dữ liệu hiệu quả hơn.
a. Cấu trúc (struct
)
struct
)struct
là một kiểu dữ liệu cho phép nhóm nhiều biến có thể thuộc các kiểu khác nhau vào một đơn vị duy nhất.
Ví dụ:
b. Hợp (union
)
union
)union
tương tự như struct
, nhưng các thành viên của union
dùng chung một vùng nhớ, tiết kiệm bộ nhớ hơn so với struct
.
Ví dụ:
c. Kiểu liệt kê (enum
)
enum
)enum
là một kiểu dữ liệu cho phép gán tên cho các giá trị nguyên, giúp chương trình dễ đọc hơn.
Ví dụ:
2. Các thuật toán sắp xếp cơ bản
a. Sắp xếp nổi bọt (Bubble Sort)
Thuật toán này so sánh từng cặp phần tử kề nhau và hoán đổi nếu chúng không theo thứ tự mong muốn.
Ví dụ:
b. Sắp xếp chọn (Selection Sort)
Chọn phần tử nhỏ nhất trong danh sách và đưa nó về đầu danh sách.
Ví dụ:
c. Sắp xếp chèn (Insertion Sort)
Chèn từng phần tử vào vị trí thích hợp trong danh sách đã sắp xếp.
Ví dụ:
III: Lưu ý dành cho người khiếm thị
Khi làm việc với
struct
vàunion
, cần lưu ý kích thước bộ nhớ và cách tổ chức dữ liệu.Các thuật toán sắp xếp có thể được thực hành trên trình biên dịch trực tuyến hoặc thông qua chương trình tự viết.
IV: Tóm tắt bài học
Đã tìm hiểu về các kiểu dữ liệu nâng cao (
struct
,union
,enum
).Đã học về các thuật toán sắp xếp cơ bản như Bubble Sort, Selection Sort và Insertion Sort.
Biết cách áp dụng các thuật toán này vào bài toán thực tế.
V: Liên kết tới bài tiếp theo
Trong bài tiếp theo, chúng ta sẽ tìm hiểu về Quản lý tập tin trong C, một chủ đề quan trọng giúp bạn thao tác với tệp tin trong lập trình thực tế.
Last updated