Phân tích và thiết kế giải thuật - Chương 1
Số trang: 0
Loại file: pdf
Dung lượng: 1.26 MB
Lượt xem: 17
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài Giảng điện tử Phân tích và thiết kế giải thuật. Tiến sĩ Dương Tuấn Anh. Chương 1: Các khái niệm cơ bản. Mô tả cấu trúc dữ liệu theo các tác vụ làm việc trên cấu trúc dữ liệu thì tiện lợi hơn là diễn tả nó theo những chi tiết thi công.
Nội dung trích xuất từ tài liệu:
Phân tích và thiết kế giải thuật - Chương 1Môn h c: Phân tích và thi t k gi i thu tCh ng 1 CÁC KHÁI NI M C N B N 4N i dung1. Ki u d li u tr u t ng2. quy3. Phân tích gi i thu t 51.Ki u d li u tr u t ng• Mô t m t c u trúc d li u theo các tác v (operations) làm vi c trên c u trúc d li u thì ti n l i h n là di n t nó theo nh ng chi ti t thi công (implementation details).• Chúng ta nên tách nh ng khái ni m v c u trúc d li u ra kh i nh ng chi ti t thi công.• Khi m t c u trúc d li u c nh ngh a theo cách nh v y ta s có m t ki u d li u tr u t ng (abstract data type) hay ADT. M t ki u d li u tr u t ng là m t mô hình toán h c i cùng v i nh ng tác v c nh ngh a trên mô hình này. 6Vài thí d v Ki u d li u tr u t ng• M t t p (set) là m t t p h p g m zero hay nhi u ph n t . M t ph n t không c phép xu t hi n nhi u h n m t l n trong t p. M t t p g m n ph n t c ký hi u là {a1, a2,…,an}, nh ng v trí c a m t ph n t trong m t t p là không quan tr ng.• M t a t p (multiset) là m t t p mà trong ó m t ph n t c phép xu t hi n nhi u h n m t l n. Thí d , {5,7,5,2} là m t a t p. M t a t p có th có nh ng tác v sau: initialize (kh i t o) insert (thêm vào) is_empty (th a t p có r ng) delete (xoá) findmin (tìm ph n t bé nh t) 7Vài thí d v Ki u d li u tr u t ng (tt)• M t chu i (sequence) là m t t p h p có th t c a zero hay nhi u ph n t ; c ký hi u là . V trí c a m t ph n t trong m t chu i là có ý nghiã. M t chu i có th có nh ng tác v sau: initialize (kh i t o) length (chi u dài) head (ph n t u) tail (ph n uôi) concatenate (ghép k hai chu i) 8Gi i m t bài toán b ng ADT th y ích l i c a ki u d li u tr u t ng, th xét bài toánsau:Cho m t m ng (array) g m n s , A[1..n], hãy xác nh k ph nt l n nh t trong m ng, v i k n. Thí d , n u A là {5, 3, 1, 9,6}, và k = 3, thì k t qu là {5, 9, 6}.Không d xây d ng m t gi i thu t gi i bài toán trên.Ta th dùng ki u d li u tr u t ng a t p (multiset) v i cáctác v : initialize(M), insert(x, M), deleteMin(M), findMin(M) 9Suy ngh trên a t p M, ta có th vi t m t gi i thu t nhsau:Initialize(M);for i:= 1 to k do Insert(A[i], M);for i:= k + 1 to n do if A[i] > FindMin(M) then begin DeleteMin(M); Insert(A[i],M) end;Trong thí d trên, ta th y ki u d li u tr u t ng ã làm n gi n hóa vi c xây d ng gi i thu t b ng cách không b ntâm n nh ng chi ti t thi công hay hi n th c hóa. 10Thi công m t ki u d li u tr u t ngQuá trình dùng m t c u trúc d li u c th hi n th c hóam t ADT c g i là thi công ki u d li u tr u t ng. Trongs thi công này, ph n d li u tr u t ng c hi n th c hóab ng m t c u trúc d li u c th và ph n các tác v tr ut ng c hi n th c hóa b ng các tác v c th h n. Abstract Data Data Structure Operations Concrete operations 11Thi công m t ki u d li u tr u t ng (tt.)Có th dùng m ng (array) hay danh sách liên k t (linked list) thi công t p h p (set).Có th dùng m ng (array) hay danh sách liên k t (linked list) thi công chu i.V i ki u d li u tr u t ng a t p nh trong thí d tr c, tacó th dùng hàng i có u tiên (priority queue) thicông. Và sau ó ta có th dùng c u trúc d li u heap thicông hàng i có u tiên. 122. quyH th c truy h iThí d 1: Hàm tính giai th aN! = N.(N-1)! v iN 1 0! = 1Nh ng nh ngh a hàm quy mà ch a nh ng i s nguyên c g i là nh ng h th c truy h i (recurrence relation).function factorial (N: integer): integer;begin if N = 0 then factorial: = 1 else factorial: = N*factorial (N-1);end; 13H th c truy h iThí d 2: S FibonacciH th c truy h i: FN = FN-1 + FN-2 for N 2 F0 = F1 = 1 1, 1, 2, 3, 5, 8, 13, 21, …function fibonacci (N: integer): integer;begin if N M t cách khác: Ta có th dùng m t m ng ch a nh ng tr s i tr c trong khi tính hàm fibonacci. Ta có m t gi i thu tkhông quy.procedure fibonacci;const max = 25;var i: integer;F: array [0..max] of integer;begin F[0]: = 1; F[1]: = 1; fo ...
Nội dung trích xuất từ tài liệu:
Phân tích và thiết kế giải thuật - Chương 1Môn h c: Phân tích và thi t k gi i thu tCh ng 1 CÁC KHÁI NI M C N B N 4N i dung1. Ki u d li u tr u t ng2. quy3. Phân tích gi i thu t 51.Ki u d li u tr u t ng• Mô t m t c u trúc d li u theo các tác v (operations) làm vi c trên c u trúc d li u thì ti n l i h n là di n t nó theo nh ng chi ti t thi công (implementation details).• Chúng ta nên tách nh ng khái ni m v c u trúc d li u ra kh i nh ng chi ti t thi công.• Khi m t c u trúc d li u c nh ngh a theo cách nh v y ta s có m t ki u d li u tr u t ng (abstract data type) hay ADT. M t ki u d li u tr u t ng là m t mô hình toán h c i cùng v i nh ng tác v c nh ngh a trên mô hình này. 6Vài thí d v Ki u d li u tr u t ng• M t t p (set) là m t t p h p g m zero hay nhi u ph n t . M t ph n t không c phép xu t hi n nhi u h n m t l n trong t p. M t t p g m n ph n t c ký hi u là {a1, a2,…,an}, nh ng v trí c a m t ph n t trong m t t p là không quan tr ng.• M t a t p (multiset) là m t t p mà trong ó m t ph n t c phép xu t hi n nhi u h n m t l n. Thí d , {5,7,5,2} là m t a t p. M t a t p có th có nh ng tác v sau: initialize (kh i t o) insert (thêm vào) is_empty (th a t p có r ng) delete (xoá) findmin (tìm ph n t bé nh t) 7Vài thí d v Ki u d li u tr u t ng (tt)• M t chu i (sequence) là m t t p h p có th t c a zero hay nhi u ph n t ; c ký hi u là . V trí c a m t ph n t trong m t chu i là có ý nghiã. M t chu i có th có nh ng tác v sau: initialize (kh i t o) length (chi u dài) head (ph n t u) tail (ph n uôi) concatenate (ghép k hai chu i) 8Gi i m t bài toán b ng ADT th y ích l i c a ki u d li u tr u t ng, th xét bài toánsau:Cho m t m ng (array) g m n s , A[1..n], hãy xác nh k ph nt l n nh t trong m ng, v i k n. Thí d , n u A là {5, 3, 1, 9,6}, và k = 3, thì k t qu là {5, 9, 6}.Không d xây d ng m t gi i thu t gi i bài toán trên.Ta th dùng ki u d li u tr u t ng a t p (multiset) v i cáctác v : initialize(M), insert(x, M), deleteMin(M), findMin(M) 9Suy ngh trên a t p M, ta có th vi t m t gi i thu t nhsau:Initialize(M);for i:= 1 to k do Insert(A[i], M);for i:= k + 1 to n do if A[i] > FindMin(M) then begin DeleteMin(M); Insert(A[i],M) end;Trong thí d trên, ta th y ki u d li u tr u t ng ã làm n gi n hóa vi c xây d ng gi i thu t b ng cách không b ntâm n nh ng chi ti t thi công hay hi n th c hóa. 10Thi công m t ki u d li u tr u t ngQuá trình dùng m t c u trúc d li u c th hi n th c hóam t ADT c g i là thi công ki u d li u tr u t ng. Trongs thi công này, ph n d li u tr u t ng c hi n th c hóab ng m t c u trúc d li u c th và ph n các tác v tr ut ng c hi n th c hóa b ng các tác v c th h n. Abstract Data Data Structure Operations Concrete operations 11Thi công m t ki u d li u tr u t ng (tt.)Có th dùng m ng (array) hay danh sách liên k t (linked list) thi công t p h p (set).Có th dùng m ng (array) hay danh sách liên k t (linked list) thi công chu i.V i ki u d li u tr u t ng a t p nh trong thí d tr c, tacó th dùng hàng i có u tiên (priority queue) thicông. Và sau ó ta có th dùng c u trúc d li u heap thicông hàng i có u tiên. 122. quyH th c truy h iThí d 1: Hàm tính giai th aN! = N.(N-1)! v iN 1 0! = 1Nh ng nh ngh a hàm quy mà ch a nh ng i s nguyên c g i là nh ng h th c truy h i (recurrence relation).function factorial (N: integer): integer;begin if N = 0 then factorial: = 1 else factorial: = N*factorial (N-1);end; 13H th c truy h iThí d 2: S FibonacciH th c truy h i: FN = FN-1 + FN-2 for N 2 F0 = F1 = 1 1, 1, 2, 3, 5, 8, 13, 21, …function fibonacci (N: integer): integer;begin if N M t cách khác: Ta có th dùng m t m ng ch a nh ng tr s i tr c trong khi tính hàm fibonacci. Ta có m t gi i thu tkhông quy.procedure fibonacci;const max = 25;var i: integer;F: array [0..max] of integer;begin F[0]: = 1; F[1]: = 1; fo ...
Tìm kiếm theo từ khóa liên quan:
thiết kế giải thuật Bài Giảng điện tử Thiết kế giải thuật Dương Tuấn Anh Thuật toán chương trình Kỹ thuật lập trìnhTài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 310 0 0 -
BÀI GIẢNG LẬP TRÌNH GHÉP NỐI THIẾT BỊ NGOẠI VI
42 trang 282 2 0 -
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 252 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 248 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 222 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 189 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 160 0 0 -
HƯỚNG DẪN THIẾT KẾ BÀI GIẢNG BẰNG LECTURE MAKER
24 trang 153 0 0 -
Giáo trình PLC S7-300 lý thuyết và ứng dụng
84 trang 146 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 126 0 0