1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu Trúc Dữ Liễu Và Giải Thuật Chapter1 Introduction

35 88 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 646,05 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cấu Trúc Dữ Liễu Và Giải Thuật Chapter1 Introduction . Tài Liệu Gồm 6 Chapter Mong các Bạn theo dõi để ôn tập đủ nha Để Cập Nhật Thêm Tìm Hiểu Hơn Nữa Về Tài Liệu IT Thì Các Bạn Có Thể Truy Cập : https:123doc.orgtrangcanhan4336953tailieuit.htm CẢM ƠN CÁC BẠN ĐÃ THEO DÕI

Trang 1

Môn học

CTDL & GT

1

Trang 2

Nội dung môn học

Những khái niệm cơ bản

Cấu trúc danh sách, ngăn xếp, hàng đợi

Cấu trúc cây

Đồ thị

Tập hợp

Các giải thuật tìm kiếm, sắp xếp

2

Trang 3

Tài liệu tham khảo

CTDL&GT, Đinh Mạnh Tường, Đại học

Công nghệ, ĐHQG Hà Nội

Giải thuật và lập trình, Bài giảng chuyên đề, Lê Minh Hoàng, Đại học Sư phạm

CTDL&GT, Đỗ Xuân Lôi, Nhà xuất bản

ĐH Quốc Gia Hà Nội, 2010 (Tái bản)

3

Trang 4

Tài liệu tham khảo

Slide bài giảng CTDL&GT, GS.TS Hồ Sỹ Đàm, ĐH Công nghệ

Slide bài giảng CTDL&GT, Mai Xuân

Hùng, ĐH CNTT

Một số tác giả khác

4

Trang 5

Chương 1:

Những khái niệm cơ bản

5

Trang 6

III Cấu trúc dữ liệu

Giải bài toán trên máy tính

Khái niệm mô hình dữ liệu

Cấu trúc dữ liệu

Các tiêu chuẩn của CTDL

Vai trò của CTDL

Bài toán và thuật toán

 Độ phức tạp của thuật toán

6

Trang 7

1 Giải bài toán trên máy tính

Bước 1: Xác định bài toán: input, output

Bước 2: Thiết kế, mô tả thuật toán

Bước 3: Viết chương trình

 Chọn CTDL, ngôn ngữ lập trình

Bước 4: Hiệu chỉnh

 Xây dựng các bộ dữ liệu test đặc trưng

 Chạy thử

Bước 5: Viết tài liệu

 Hướng dẫn sử dụng

 Thuật toán, CTDL

7

Trang 8

2 Mô hình dữ liệu

Là các trừu tượng :đồ thị, tập hợp, danh sách, cây

Hai khía cạnh:

 Giá trị (kiểu dữ liệu)

 Các phép toán ( operation)

Chương trình có thể truy xuất đến các

vùng lưu trữ

8

Trang 9

3 Cấu trúc dữ liệu

Là các đơn vị cấu trúc (construct) của NNLT dùng để biểu diễn các mô hình dữ liệu

Ví dụ: mảng, xâu, bản ghi, file

9

CTDL + Thuật giải = chương trình

Các tiêu chuẩn đánh giá CTDL

 Phản ánh đúng thực tế

 Phù hợp với các thao tác xử lý

 Tiết kiệm tài nguyên hệ thống

Trang 10

4 Thuật toán/Giải thuật

10

Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác đươc sắp xếp theo một trật tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm

Trang 11

4.1 Sự cần thiết của thuật toán

Tại sao sử dụng máy tính để xử lý dữ

liệu?

 Nhanh hơn

 Nhiều hơn

 Giải quyết những bài toán mà con người

không thể hoàn thành được

Là m sao đạt được những mục tiêu đó?

 Nhờ vào sự tiến bộ của kỹ thuật: tăng cấu

hình máy  chi phí cao

 Nhờ vào các thuật toán hiệu quả: thông minh

và chi phí thấp

11

Trang 12

4.2 Các đặc trưng của thuật toán

ra các dữ liệu tương ứng với lời giải của bài toán

xác

hữu hạn bước với mọi đầu vào

Đơn trị: Các kết quả trung gian của từng bước thực

hiện thuật toán được xác định một cách đơn trị và chỉ phụ thuộc đầu vào và các kết quả của các bước trước

Tổng quát: Giải thuật có thể áp dụng để giải mọi bài

toán có dạng đã cho

12

Trang 13

4.3 Mô tả thuật toán

Dạng ngôn ngữ tự nhiên

Dạng lưu đồ (sơ đồ khối)

Dạng mã giả

Ngôn ngữ lập trình

13

Trang 14

4.3 Biểu diễn thuật toán

Ví dụ: Tìm giá trị lớn nhất của mảng a1,

• Khởi tạo Max = a1

• Với mỗi i, nếu ai > Max thì thay giá trị Max= ai

14

Trang 15

4.3 Biểu diễn thuật toán

Biểu diễn bằng ngôn ngữ tự nhiên:

 NN tự nhiên thông qua các bước được tuần tự liệt

kê để biễu diễn thuật toán

15

B1 Nhập N và dãy a1, , aN

B2 Đặt Max = a1, i = 2

B3 Nếu i > N thì đến b 5

B4

4.1 N ếu ai > Max thì Max = ai

4.2 Đặt i=i+1 rồi quay b.3

B5 Đưa ra Max rồi kết thúc

Ưu điểm:

 Đơn giản, không cần kiến thức về về cách biểu

diễn (mã giả, lưu đồ, )

Nhược điểm:

 Dài dòng, không cấu trúc

 Đôi lúc khó hiểu, không diễn đạt được thuật toán

Trang 16

4.3 Biểu diễn thuật toán

Biểu diễn ở dạng lưu đồ

 Sử dụng hệ thống các nút, cung hình dạng khác nhau thể hiện các chức năng khác nhau

16

Trang 17

4.3 Biểu diễn thuật toán

17

Trang 18

4.3 Biểu diễn ở dạng mã giả

18

Ngôn ngữ tựa ngôn ngữ lập trình:

 Dùng cấu trúc chuẩn hóa, chẳng hạn tựa

Trang 19

4.3 Biểu diễn ở dạng mã giả

Khai báo hàm (thuật toán)

Thuật toán <tên TT> (<tham số>)

Input: < dữ liệu vào>

Output: < dữ liệu ra>

<Các câu lệnh>

End

Trang 20

4.3 Biểu diễn ở dạng mã giả

Trả giá trị về: return [giá trị]

Lời gọi hàm: <Tên>(tham số)

Trang 21

4.3 Biểu diễn ở dạng mã giả

Trang 22

4.4 Biểu diễn bằng NNLT

22

Dùng ngôn ngữ máy tính (C, Pascal, ) để diễn tả thuật toán, CTDL thành câu lệnh

Kỹ năng lập trình đòi hỏi cần học tập và

thực hành (nhiều)

Dùng phương pháp tinh chế từng bước để chuyển hoá bài toán sang mã chương

trình cụ thể

Trang 23

5 Ước lượng thời gian thực hiện

23

Thời gian chạy của một chương trình phụ

thuộc các yếu tố:

 Dữ liệu đầu vào

 Chất lượng của mã máy được tạo ra bởi

chương trình dịch

 Tốc độ thực thi của lệnh máy

Độ phức tạp về thời gian của thuật toán

Trang 24

5.1 Độ phức tạp thuật toán

24

Lựa chọn thuật toán

 Dễ hiểu, dễ cài đặt và dễ ghi chép ?

 Sử dụng các tài nguyên hiệu quả?

 Tùy đặc tính của bài toán

Phân tích theo kinh nghiệm

 Thực hiện và kết luận  dễ mắc lỗi

 Kích thước dữ liệu đầu vào là quan trọng: T(n)

Trang 25

5.1 Phương pháp thực nghiệm

 Chịu sự hạn chế của ngôn ngữ lập trình

 Ảnh hưởng bởi trình độ của người lập trình

 Chọn được các bộ dữ liệu thử đặc trưng cho tất cả tập các dữ liệu vào của thuật toán  khó khăn và tốn nhiều chi phí

Phụ thuộc vào phần cứng

Trang 26

5.1 Phương pháp xấp xỉ toán học

 g(n) là giới hạn trên của T(n)

Ví dụ: nếu T(n) = n2 + 1 thì T(n) = O(n2)

Chọn c=2 và n0 =1, khi đó với mọi n>=1, ta

có T(n)= n2+1 <= 2n2 =2g(n)

Trang 27

5.1 Phương pháp xấp xỉ toán học

27

Các tính chất:

(i) Tính bắc cầu: nếu f(n)= O(g(n)) và g(n)= O(h(n)) thì f(n)= O(h(n))

(ii) Tính phản xạ: f(n)=O(f(n))

Trang 28

5.2 Phương pháp xấp xỉ toán học

28

Quy tắc hằng số:

Nếu P có T(n)= O(c1f(n))  P có độ phức tạp

O(f(n))

Quy tắc cộng:

Nếu P1 có T1 (n) = O( f(n) và P2 có T2(n)=

O(g(n)), khi đó: T1(n) +T2(n) = O(f(n) +g(n))

Quy tắc nhân

Nếu P có T(n)= O(f(n)) Khi đó nếu thực hiện

k(n) lần P với k(n)=O(g(n)) thì độ phức tạp la

O(f(n) g(n))

Trang 29

5.3 Áp dụng đánh giá chương trình

Trang 30

5.3 Áp dụng đánh giá chương trình

Trang 31

5.3 Áp dụng đánh giá chương trình

• h takes values 1, 2, 4, … until it exceeds n

• There are 1 + log 2 n iterations

• Complexity O(log n)

Trang 32

5.3 Áp dụng đánh giá chương trình

from the previous one where it changes by a factor

- O(log n)

Trang 33

5.3 Phân lớp độ phức tạp

Trang 35

5.4 Độ phức tạp tt và dữ liệu vào

Ngày đăng: 11/04/2019, 17:19

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w