1. Trang chủ
  2. » Thể loại khác

Môn: CẤU TRÚC DỮ LIỆU VÀ GiẢI THUẬT

24 10 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 24
Dung lượng 104 KB

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

Nội dung

1.1 Tầm quan trọng của CTDL & giải thuật * Mối quan hệ giữa cấu trúc dữ liệu và giải thuật Theo Niklaus Wirth: Giải thuật + Cấu trúc dữ liệu = Chương trình.. Điều này hàm ý rằng cấu trú

Trang 1

Môn: CẤU TRÚC DỮ LIỆU VÀ

GiẢI THUẬT

Trang 2

NỘI DUNG MÔN HỌC

Chương 0: GIỚI THIỆU CHUNG

Chương 1: DANH SÁCH (LIST)

Chương 2: STACK-QUEUE

Chương 3: ĐỆ QUY

Chương 4: KỸ THUẬT TÌM KIẾM (SEARCHING)

Chương 5: KỸ THUẬT SẮP XẾP (SORTING)

Chương 6: CÂY (TREE)

ÔN TẬP - KIỂM TRA (REVIEW – TEST)

Trang 3

TÀI LIỆU THAM KHẢO

[1] Bài giảng & Bài thực hành CTDL - Trường ĐHCN.

[2] Giáo trình Cấu trúc dữ liệu 1, Trần Hạnh Nhi – Dương Anh Đức, Trường DHKHTN – DHQG TP.HCM.

[3] Cấu trúc dữ liệu, Nguyễn Trung Trực, Trường DHBK – DHQG TP.HCM.

[4] Data structures and Program Design in C++

Trang 5

NỘI DUNG CHƯƠNG 0

1.1 Tầm quan trọng của cấu trúc dữ liệu

1.2 Thiết kế giải thuật

1.3 Phân tích giải thuật

1.4 Phân tích thời gian thực hiện giải thuật

1.5 Các tiêu chuẩn đánh giá cấu trúc dữ liệu

1.6 Các kiểu dữ liệu

Trang 6

1.1 Tầm quan trọng của CTDL & giải thuật

* Mối quan hệ giữa cấu trúc dữ liệu và giải thuật

Theo Niklaus Wirth:

Giải thuật + Cấu trúc dữ liệu = Chương trình.

Điều này hàm ý rằng cấu trúc dữ liệu và giải thuật có mối quan hệ mật thiết với nhau trong một chương trình Do đó việc nghiên cứu các cấu trúc dữ liệu sau này đi đôi với việc xác lập các giải thuật xử lý trên các cấu trúc ấy.

Trang 7

1.2 THIẾT KẾ GIẢI THUẬT

Chia các bài toán lớn thành các bài toán nhỏ (module) Và dĩ nhiên một module có thể chia nhỏ thành các module con khác nữa, bấy giờ việc tổ chức lời giải sẽ được thể hiện theo một cấu trúc phân cấp.

A

D

Trang 8

1.2 THIẾT KẾ GIẢI THUẬT

Ví dụ: Chương trình quản lý đầu sách của một thư viện nhằm phục vụ độc giả tra cứu

sách Cụ thể, giả sử ta đã có một file dữ liệu gồm các bản ghi về các thông tin liên quan đến một đầu sách như: tên sách, mã số, tác giả, nhà xuất bản, năm xuất bản, giá tiền, Yêu cầu:

- Cập nhật dữ liệu.

- Tìm kiếm.

- In ấn.

Trang 9

1.2 THIẾT KẾ GIẢI THUẬT

Hệ chương trình quản lý sách

Cập nhật dữ liệu Tìm kiếm In ấn

Bổ sung thêm sách Sửa thông tin

file dữ liệu

Xoá dữ liệu

Xem với mọi bản ghi

Tra cứu

Thẻ sách

Thống kê

Theo mã Theo

ngày nhập

Trang 10

1.3 Phân tích giải thuật:

Tính đúng đắn.

Tính đơn giản (dễ hiểu, dễ quản lý, dễ lập).

Tính tối ưu (hiệu quả) về mặt thời gian cũng như không gian nhớ.

Trang 11

1.4 Phân tích thời gian thực hiện giải thuật:

Độ phức tạp tính toán của giải thuật:

(C: hằng), thì ta nói rằng: Độ phức tạp tính toán của giải thuật này có cấp là n2 và ta ký hiệu T(n) =

O(n2).

giải thuật có cấp là g(n).

Trang 12

1.4 Phân tích thời gian thực hiện giải thuật:

Xác định độ phức tạp của giải thuật:

Việc xác định độ phức tạp tính toán của một giải thuật nói chung là phức tạp Tuy nhiên, trong thực tế độ phức tạp của một giải thuật có thể được xác định từ độ phức tạp từng phần của giải thuật Cụ thể, ta có một số quy tắc sau:

Trang 13

-1.4 Phân tích thời gian thực hiện giải thuật:

Xác định độ phức tạp của giải thuật:

Nếu g1(n) g2(n), n n0 thì O(g1(n) + g2(n)) = O(g2(n))

Ví dụ: O(n + log2n) = O(n)

Trang 14

1.4 Phân tích thời gian thực hiện giải thuật:

Xác định độ phức tạp của giải thuật:

- Quy tắc nhân:

Nếu độ phức tạp của P1 là O(g1(n)), độ phức tạp của P2 là O(g2(n)) thì độ phức tạp tính toán của P1 lồng P2 là O(g1(n).g2(n)).

Trang 15

1.4 Phân tích thời gian thực hiện giải thuật:

Lưu ý:

Câu lệnh gán, cout, cin, If có thời gian thực hiện bằng hằng số C = O(1).

Câu lệnh lặp trong vòng g(n) lần thì sẽ có thời gian thực hiện là O(g(n)).

O(Cg(n)) = O(g(n)) (C: hằng)

Ví dụ:

1) Câu lệnh: For( i=1; i<=n ;i++) { O(n) }

P:=P*i; { O(1) }

có thời gian thực hiện là: O(n*1) = O(n).

2) For( i=1; i<=n ;i++)

For( j=1; j<=n ;j++)

x:=x+1;

có thời gian thực hiện là: O(n*n*1) = O(n2).

Trang 16

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

Đánh giá độ phức tạp của thuật toán

Là công việc ước lượng thời gian thực hiện của thuật toán để so sánh tương đối các thuật toán với nhau

Trong thực tế, thời gian thực hiện còn phụ thuộc cấu hình máy, dữ liệu đưa vào, …

Để ước lượng thời gian thực hiện thuật toán xem xét 2 trường hợp

Với Tmin và Tmax thời gian thực hiện trung bình của thuật toán Tavg

Trang 17

1.6 Các kiểu dữ liệu

Các thuộc tính của một kiểu dữ liệu

Tên kiểu dữ liệu

Miền giá trị của dữ liệu

Kích thước dữ liệu

Tập các toán tử tác động lên kiểu dữ liệu

Trang 19

1.6 Các kiểu dữ liệu (tt)

Các kiểu dữ liệu có cấu trúc

Kiểu chuỗi ký tự: là kiểu dữ liệu có cấu trúc đơn giản nhất và thường các ngôn ngữ lập trình đều dịnh nghĩa nó như một kiểu cơ bản

Trong C các hàm xử lý chuỗi được đặt trong thư viện string.lib.

VD: char S[10] ;// chuỗi ký tự S có chiều dài tối đa là 10 (kể cả ký tự kết thúc)

char S[] = ”ABCDEF” ;

char *S = “ABCDEF”;

Trang 20

1.6 Các kiểu dữ liệu (tt)

Các kiểu dữ liệu có cấu trúc (tt)

Kiểu mảng: là kiểu dữ liệu trong đó mỗi phần tử của nó là một tập hợp có thứ tự các giá trị

có cùng cấu trúc được lưu trữ liên tiếp nhau trong bộ nhớ.

Trang 21

1.6 Các kiểu dữ liệu (tt)

Các kiểu dữ liệu có cấu trúc (tt)

Kiểu mẫu tin: Kiểu mẫu tin cũng tương tự như mảng nhưng mỗi phần tử của nó là tập hợp các giá trị có thể khác cấu trúc

Kiểu mẫu tin thường được dùng để mô tả những đối tượng có cấu trúc phức tạp.

Trang 22

1.6 Các kiểu dữ liệu (tt)

Kiểu dữ liệu con trỏ

Kiểu con trỏ là kiểu dữ liệu cơ sở dùng lưu địa chỉ của một đối tượng dữ liệu khác.

Biến thuộc kiểu con trỏ Tp là biến mà giá trị của nó là địa chỉ của một vùng nhớ ứng với một biến kiểu T, hoặc là giá trị NULL

Trang 23

1.6 Các kiểu dữ liệu (tt)

Kiểu dữ liệu con trỏ (tt)

Cú pháp định nghĩa dữ liệu kiểu con trỏ

typedef <kiểu cơ sở> * <kiểu con trỏ>;

Các thao tác cơ bản trên kiểu con trỏ:

Khi một biến con trỏ ‘p’ lưu trữ địa chỉ của đối tượng x ta nói “p trỏ đến x”

Gán địa chỉ của một vùng nhớ con trỏ p:

p = <địa chỉ>;

p = <địa chỉ> + <giá trị nguyên>

Truy xuất (xem) nội dung của đối tượng p trỏ đến (*p)

Trang 24

1.6 Các kiểu dữ liệu (tt)

Kiểu dữ liệu tập tin

Tập tin là kiểu dữ liệu đặc biệt, kích thước tối đa của tập tin phụ thuộc không gian đĩa

Việc đọc, ghi dữ liệu trên tập tin là mất thời gian, không an toàn dữ liệu

Thông thường chuyển dữ liệu trong tập tin (một phần hay toàn bộ) vào bộ nhớ trong để

xử lý.

Ngày đăng: 18/04/2022, 16:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w