[r]
(1)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.1
CHƯƠNG 1
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
1 Mối quan hệ cấu trúc liệu giải thuật 1.1 Giải thuật (thuật toán, algorithms)
l Khái niệm: Giải thuật một hệ thống thao
tác, phép toán thực theo trình tự định số đối tượng liệu đó, cho sau số bước hữu hạn ta có kết mong muốn
l Giải thuật phản ánh phép xử lý, đối tượng xử lý liệu
1.1 Giải thuật (thuật tốn, algorithms)
l Giải thuật phải có tính chất cơ bản sau:
l Tính thực được:
l Tính kết thúc:
l Tính kết quả: Phải cho kết mong muốn
l Tính hiệu quả:
l Tính nhất:
l Tính tổng qt: Phải áp dụng cho tốn loại
(2)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.3
1.2 Cấu trúc dữ liệu
l Khái niệm liệu: Dữ liệu phần tử biểu diễn thông tin cần thiết cho tốn
l Một tốn có loại liệu: Dữ liệu vào, liệu trung gian, liệu
l Dữ liệu vào liệu cần đưa vào để xử lý, đầu vào toán
l Dữ liệu trung gian liệu chứa kết trung gian trình xử lý
l Dữ liệu liệu chứa kết mong muốn toán
l Giải thuật thực biến đổi từ liệu vào thành liệu
1.2 Cấu trúc dữ liệu (tiếp)
l Ví dụ 1: Ta xét tốn tính học bổng cho sinh viên theo chế độ hiện hành Các dữ liệu của toán bao gồm:
l Dữ liệu vào: Họ tên, Điểm mơn, Số
trình môn học
l Dữ liệu trung gian: Điểm trung bình
(3)Ngơ Cơng Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.5
1.2 Cấu trúc dữ liệu (tiếp)
l Ví dụ 2: Xét tốn giải phương trình bậc hai ax2 + bx + c = Các dữ liệu của toán như sau:
l Dữ liệu vào: a, b, c
l Dữ liệu trung gian: delta
l Dữ liệu ra: x1, x2
1.2 Cấu trúc dữ liệu (tiếp)
l Dữ liệu nguyên tử phần tử dữ liệu cơ sở
khơng thể tách nhỏ được, chữ số, kí tự, giá trị logic, Trong toán, liệu bao gồm tập liệu
nguyên tử
l Từ liệu nguyên tử ta tạo thành cấu trúc liệu cách thức liên kết
(4)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.7
1.2 Cấu trúc dữ liệu (tiếp)
l Tóm lại, Cấu trúc dữ liệu tập hợp phần tử dữ liệu liên kết với bằng một cách đó Nói tới cấu trúc dữ liệu nói tới cách tổ chức phần tử dữ liệu như thế nào.
1.2 Cấu trúc dữ liệu (tiếp)
l Khái niệm Cấu trúc lưu trữ: Cách biểu diễn cấu trúc liệu nhớ gọi cấu trúc lưu trữ, cách cài đặt cấu trúc liệu máy vi tính
l Có thể có nhiều cấu trúc lưu trữ khác cho cấu trúc liệu Chẳng hạn cấu trúc liệu kiểu mảng ta lưu trữ ô nhớ nhớ lưu trữ ô nhớ không nhớ
l Có thể có nhiều cấu trúc liệu khác cài
đặt nhớ cấu trúc lưu trữ Chẳng hạn cấu trúc xâu kí tự, cấu trúc mảng cài
(5)Ngơ Cơng Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.9
1.2 Cấu trúc dữ liệu (tiếp)
l Mỗi một ngơn ngữ lập trình đều có cấu trúc dữ liệu tiền định (định sẵn), bởi vậy chọn ngơn ngữ lập trình ta phải chấp nhận cấu trúc dữ liệu tiền định của nó, phải vận dụng linh hoạt cấu trúc dữ liệu vào toán cần giải quyết.
1.3 Mối quan hệ giữa cấu trúc dữ liệu và giải thuật
l Xét tới giải thuật phải xét giải thuật đó tác
động cấu trúc liệu
l Xét tới cấu trúc dữ liệu phải hiểu cấu trúc dữ
liệu cần tác động giải thuật để
được kết mong muốn
l Cấu trúc liệu giải thuật Khi cấu trúc liệu thay đổi giải thuật thay đổi theo.
(6)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.11
2 Các cách diễn đạt giải thuật
2.1 Liệt kê bước lời
l Trong cách diễn đạt ta phải viết từng bước
làm công việc gì: Bước 1, Bước 2…
2 Các cách diễn đạt giải thuật
2.2 Lưu đồ giải thuật
l Lưu đồ giải thuật một sơ đồ có hướng diễn
đạt bước thực giải thuật
l Lưu đồ giải thuật giúp người lập trình xem xét làm việc giải thuật chi tiết cụ thể
(7)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.13
2.1 Lưu đồ giải thuật (tiếp)
l Các hình cơ bản lưu đồ giải thuật gồm có:
l Hình elíp thể bắt đầu kết thúc giải thuật
l Hình chữ nhật thao tác, công việc cần thực
Công việc Bắt đầu Kết thúc
2.1 Lưu đồ giải thuật (tiếp)
l Các hình cơ bản lưu đồ giải thuật gồm có:
l Hình thoi thể điệu kiện Hình có đường vào hai đường ứng với hai trường hợp điều kiện điều kiện sai
(8)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.15
Ví dụ: Lưu đồ giải thuật tìm giá trị lớn nhất trong mảng số A có n phần tử
Bắt đầu
max := A(1) i :=
i <= n
Đ
S
A(i) > max
Đ
S
max := A(i)
i := i +
In giá trị max
Kết thúc
2.3 Giả mã
l Giả mã giả ngơn ngữ lập trình (tựa ngơn ngữ lập trình).
l Trong cách diễn đạt giải thuật bằng giả
(9)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.17
2.3.1 Quy định chung
l Tên chương trình viết bằng chữ hoa, có thể thêm dấu gạch ngang đặt sau từ Program
l Lời thích đặt giữa hai dấu ngoặc {….}
Lời thích được quy ước dùng tiếng Việt.
2.2.2 Biểu thức
l Các phép toán:
l Số học: +, -, *, /, ^, DIV, MOD
l Quan hệ: < , = , > , ≤ , ≥, ≠
l Logic: NOT, AND, OR, XOR
l Các giá trị Logic True, False
l Tên biến một dãy chữ cái, chữ số, dấu gạch
(10)Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 01 1.19
2.2.3 Câu lệnh
l Các câu lệnh thể thao tác, công việc cần thực Các câu lệnh viết viết cách dấu ;
l Phép toán gán được ký hiệu bởi dấu := hoặc ← l Phép hoán đổi giá trị ký hiệu dấu :=:
hoặc ↔
l Cấu trúc tuần tự: Liệt kê công việc, thao tác theo thứ tự Để cho việc theo dõi thuận tiện đánh thêm thứ tự 1), 2), 3)… a), b), c)…
l Câu lệnh ghép:
Begin s1; s2; ; sn; end Trong si câu lệnh i
2.2.3 Câu lệnh
lCâu lệnh điều kiện:
lif B then S;
lif B then S1 else S2; trong đó B biểu thức