Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
1,2 MB
Nội dung
BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC HÀNG HẢI N H HỌC T NH H C NG NGHỆ TH NG TIN ÀI GIẢNG PHÂN T CH THIẾT Ế VÀ Đ NH GI THUẬT T N TÊN HỌC PHẦN : Phân tích thiết kế đánh giá thuật tốn MÃ HỌC PHẦN : 17208 TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CH NH QU DÙNG CHO SV NGÀNH : C NG NGHỆ TH NG TIN HẢI PHÒNG - 2010 Tên học phần P ộ môn phụ trách giảng dạy K a ọ M y ã học phần 17208 TS 60 Lý 45 y Tự 15 /Xem a Điều kiện tiên S ê p ả ọ x K lp C ục tiêu - Tự ọ B ọ p ầ sa mớ l T học phần C p C p Rè l y Nội dung chủ yếu Gồm p ầ : C C C lượ K Loại học phần hoa phụ trách CNTT Tổng số TC: p lớ ượ ă Đồ ý ọ p ầ ả mô ọ y: l lượ x y ự y a ọ ả ả x p lượ m : lượ am lam ộp p ộ ả m lượ l a lượ ay l BT KT Nội dung chi tiết học phần TÊN CHƯƠNG ỤC Ch ng I Các khái niệm c ản 1.1 G 1.1.1 K m 1.1 C p p p 1.1.3 C ụ s Độ p p .1 C ý m ộ p C lớp 1.3 Mố a a l 1.4 Mộ số ụ Ch ng II S p ếp t m kiếm B x p 1.1 Sắp x p Sắp x p 1.3 Đ x p C x p ả Sắp x p ọ Sele S Sắp x p ự p x a e S Sắp x p è I se S Sắp x p ọ B le S S s x p ả PHÂN PHỐI SỐ TIẾT TS LT TH/Xemina ố p 0,5 0,5 ả 15 0,5 2,5 1 i TÊN CHƯƠNG ỤC Sắp x p ố 3.1 C Heap T xy ự Heap 3.3 T x p ố T m m y 4.1 B m m T m m y Ch ng III Đệ qui chiến c v t cạn 3.1 K m quy 3.1.1 G ả y ủ ụ y 3.1 T ả y 3.1.3 H lự y 3.1.4 Đ y y p ọ C lượ B e e 3.3 C lượ ay l a a 3.3.1 Ve m 3.3 T ủ ụ 3.3.3 C 3.3.4 Đ p 3.3 Mộ số a a Ch ng IV Chiến c chia đ tr 4.1 C s lượ a T x p ộ .1 T ộ a R Sắp x p ộ 4.3 Sắp x p a s 4.3.1 C lượ p 4.3.2 Quick sort 4.4 T m m p T số yê .1 T ay T a Mộ số Ch ng V Qui hoạch động C lượ ộ 5.1.1 C p ụ C ướ ộ 1.3 C ộ B y số a T T ộ B y B ma Mộ số ụ Ch ng VI Chiến c tham am N yê ắ am lam B B l 3.1 T PHÂN PHỐI SỐ TIẾT TS LT TH/Xemina 2,5 1,5 11 11 12 1 0,5 1 0,5 0,5 1,5 BT KT 1 1 1 1,5 1 1 0,5 1,5 0,5 1,5 0,5 1 0,5 1 1 ii TÊN CHƯƠNG ỤC T e S s lượ ộ PHÂN PHỐI SỐ TIẾT TS LT TH/Xemina lượ am lam am lam lượ Nhiệm vụ sinh viên T am ự y am ự m a ỳ ố BT 0,5 ê ỳ ự ọ KT ự lm p giáo viên giao, Tài iệu học tập N y H Đ Giáo trình số vấn đề thuật tốn NXB G ụ 2003 Đ M Tư Cấu trúc liệu thuật toán NXB Đ ọ ố aH ộ 00 N y ố Lượ H Đ Hả Cấu trúc liệu + giải thuật = chương trình NXB G ụ 199 R a Neap l a Kumarss Naimipour, Foundations of Algorithms Using C++ Pseudocode, Third Edition, Jones and Bartlett Publishers, 2004 Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein, Introduction to Algorithms, Second Edition, MIT Press, 2001 H nh thức tiêu chuẩn đánh giá sinh viên H ố ỳ:T S ê p ả ảm ả Thang m Thang m chữ p e y N Bộ , , C, D, F Đi m đánh giá học phần Z = 0,3X + 0,7 B K a Cô ả y l Tơ Ngày phê duyệt Tr ởng l thức thống Bộ mô K a ọ M y ượ ù ả y cho sinh viên / /20 ộ môn ThS Nguyễn Hữu Tuân (ký ghi rõ họ tên) iii ài giảng mơn học Phân tích thiết kế đánh giá giải thuật ỤC LỤC LỜI NÓI ĐẦU CH NG I: C C KH I NI M C T ả - Algorithm a 1.1 Đ Đ B Mô ả S ướ ụ Độ p s ự lư p 3.1 C ả l ê a 3.3 C ự a 3.4 C a – Algorithm Complexity Đ ộp lớp p C l – Data structure C lượ D y ộ Đ C D lượ ea C e am lam G ee y 10 B x a s e sea ay l – Backtracking C a CH BẢN ộ Dy am P amm 11 p 11 NG II: S P X P SORTING VÀ TÌM KI M S ARCHING 13 B x p 13 1.1 Sắp x p I e al S Sắp x p x e al S 1.3 Sắp x p 1.3 C C Sắp x p ẩ Sắp x p mộ p p x p ọ Sắp x p Sắp x p 13 p 13 ê p 13 è Sele x p 14 ả 15 s 15 ự p x a es 17 I se s 19 ọ B le s 21 iv ài giảng mơn học Phân tích thiết kế đánh giá giải thuật S s x p C l T m CH CH CH CH m Heap x p y ả 23 ố Heap s 24 31 C 33 B p 33 NG III: Đ UI VÀ CHI N L K m C lượ C lượ C V T CẠN 34 34 B ay l NG IV: CHI N L C s Sắp x p ộ Sắp x p Tm B e Ba a / ya e 35 C CHIA Đ TR 38 lượ a Me e s a m e 34 D C e 38 38 s p ea 43 46 p 48 NG V: UI HOẠCH ĐỘNG 49 C lượ ộ B 1: D y B :B P B B 49 a 49 y p p ộ y ma 51 53 53 p 57 NG VI: CHI N L N yê ắ B Bài t S s C THAM LAM GR D ) 60 am lam 60 60 lpl 61 lượ am lam ộ 64 TÀI LI U THAM KHẢO 65 ĐỀ THI THAM KHẢO 66 v ài giảng môn học Phân tích thiết kế đánh giá giải thuật LỜI NÓI ĐẦU C l a l mộ ượ p ả s ụ l ả V p p lp ê lựa ọ mô ọ P T s s ưa a l l ự ê ắ l l a ọ my Hầ ù lớ ay ù ả ay p p ự lm ê lượ x y ự a ọ my ả lý y ắ ả p p ự V y ọ p ả l mộ a ọ l y ựa ê m ê m ả p ả y mô ọ C l ả a Cô Tô Đ ọ H ả V am ù am ả l p ả ướ ự y pe a Vớ ẩy ượ a ủ a m ả x p m m lượ ay l ộ am lam y ọ s p em s ê ộ ả mộ l M ù ố ắ ẫ ô mộ số s y ọ s ượ è p em ê ộ ả pý ô a l y X Cô a lượ l ự ê y ê my l e l Tô ảm p ỡ è l p Ba y ủ m a Hải phòng, tháng 04 năm 2010 Tác giả Nguyễn Hữu Tn ài giảng mơn học Phân tích thiết kế đánh giá giải thuật CHƯƠNG I C C H I NIỆ CƠ ẢN Thuật toán (giải thuật) - Algorithm 1.1 Đ nh ngh a thuật toán C a p Te ố s a Algorithms Se T mas H C me R es Cl Se ượ a ụ x ell- e e s a a mộ mộ p ượ ọ l N mộ ô p ầ ả ả mộ ụ ộ ố ell- e e a l mộ l mộ x y số a số a a l “Introduction to C a les Le se s R al L sa : “mộ l mộ ủ mộ p ọ l p p l V mộ mộ m m ụ T m ù l mộ mộ m Đ c tr ng thuật toán T ố ắ : T l ầ ộ ầ p ả Đ y ảm ả l mộ a ả ọ sa ự ố mộ T : T x p T ả ầ T y ầ p ả :C ướ ầm lẫ ố ả: a ù sa mộ số p ả a m l Input K ụ e ả ượ ụ y ả p p ê a ượ ướ ượ p ọ ượ xem l p : ượ mộ lớp N ảm ả s ọ l ự p ố a ọ l O tput l mộ ả ă ự ả y ượ yê p p ả ầ ả ụ ượ ọ l ùy e i u diễn thuật tốn T ng có hai cách bi u di n thu t toán, cách th nh t mơ tả thu t tốn, cách th hai s dụ s giải thu t 2.1 ô tả ước thực hi n ớc thực Đ bi u di n thu i ta mô tả x ước thực hi n thu t tốn, ngơn ng ù mơ tả thu t tốn có th ngơn ng tự nhiên ho c ngôn ng lai ghép gi a ngôn ng tự nhiên với ngôn ng l p ọ l n giả mã l nh ài giảng mơn học Phân tích thiết kế đánh giá giải thuật Ví dụ: mơ tả thu m ước số chung lớn nh t hai số nguyên Input: Hai số nguyên a, b O p : số lớ a Thuật toán: Bướ 1: N a Bướ a :N USCLN(a, b)=a m USCLN a-b b, quay l i ướ Bướ 3: N u a < b tìm USCLN a b-a, quay l i ướ 2 Sử dụng s đ ( u đ ) giải thuật (flowchart) Mộ (Algorithm Flowchart) S s y C ù ụ ý s mô ả ố Bắ l s ả ủa mộ s ầu ố ả mô ả ướ ụ s ả a s a ả C p s mộ mô ả ma ự mô ả ố Câu l nh K t ụ c Đ u ki n Đ S hối K ố Nh p xu t d li u ắ ầ y hối K ố mộ Khối T ự a Khối 4: R s e (False) mộ a l m a Đ T e l mộ u ki u th l ồm mộ B lea sa u th s e Sa ài giảng môn học Phân tích thiết kế đánh giá giải thuật hối C l p x l Độ phức tạp thuật tốn – Algorithm Complexity Các tiêu chí đánh giá thuật tốn Tơ dựa ê m ộ tốt, x u so sánh thu t tốn lo i, có th ẩ : +T ả + Dựa vào th i gian thực hi n tài nguyên mà thu t toán s dụ d li u thực hi n Trên thực t thu t tốn hi u khơng d hi t hi u ô d dàng thực hi n hi ược cách nhanh chóng Và mộ u ngh ch lý thu t tốn hi u khó hi t ph c t p l i hi u (không phả l V nh giá so sánh thu a ng dựa ê ộ ph c t p v th i gian thực hi n thu t toán, gọ l ộ ph c t p thu t toán (algorithm complexity) V ch ộ ph c t p thu t toán mộ m ướ lượng (có th khơng xác) số phép tính mà thu t tốn cần thực hi n (t dàng suy th i gian thực hi n thu ối với d li p ước N N có th số phần t mả ng hợp toán x p ho c tìm ki m, ho c có th l ộ lớn số toán ki m tra số nguyên tố chẳng h n 3.2 Đánh giá th i gian thực thuật toán Đ minh họa vi chọn (selection sort) x p Cài ộ ph c t p thu t tốn ta xem xét ví dụ v thu t toán x p i ch trực ti p ex a e s sa : t thu t toán x p chọn: for(i=0;i Tuy ê e p p ầ p ầ ướ ảs l xem s ọ lựa ọ M ầ ọ a a T ê lựa ọ C ẳ y số l mộ y ă D ọ am ă sa ọ x ợp mộ y ă ê ả y a s ọ lựa ọ ố s ọ mộ am lam y ô p ả a ầ ọ a y y ả l p ầ ầ l s ọ ố p ầ ượ ọ ô p ả l ả ài toán đổi tiền B p lầ lượ l m1 m m ả e yê as ố ắ 89 ồ 100 ồ sa : mộ lượ Vớ ả số lượ số lượ lý am ă a y s ụ m m 10 100 10 ồ ồ l ô s ụ l ảm ả số lớ a mộ m y Mộ s ụ l V ụ l 60 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật Ty ộ lớp ê ê ự NP ầy ủ ê y ộ l mộ ự x p a lô y : ù ả apsa ộ ài toán ập ch Mộ p ọ s ụ mộ lớp ọ mộ m C mố s ụ p ọ m lớp ọ mộ l ọ ượ mộ ả = [sj a l lớp ọ s ọ ắ ầ m sj m j Mụ l m mộ l ọ sa số lượ lớp ọ s ụ p ọ l lớ ượ ê ô a lớp ù s ụ p ọ mộ m a lớp ù l ọ Gả s l ọ lớp ượ e ự ă a lớp ọ a Ij ô sa : f1 f f n C mộ l Gọ Si,j l a l lớp C p y lớp ọ ắ ầ sa ượ x p a a S0,n+1 s l ọ ố êm p a lớp ả lớp ả G ả s lớp Ck l mộ p ầ T p l lớ D sa : l ọ ố m lớp Ci C0 ọ ố a ướ i Cj Cn+1 - lớp ồm mộ m sj p m lớ Sn+1 + K S i,j S i,k , {Ck mộ Sk,j ọ l ướ mộ l ọ ố p S i,j a 61 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật if j = i+1 0 Q(i, j ) max(Q(i, k ) Q(k , j ) 1) if j > i+1 ik j Thực ựa chọn tham am ổ đề 1: Tồ ầ ê mộ l ọ a a l lớp C k Si,j ổ đề 2: N ọ lớp C k T ố p S i,j số p Si,k s l p a lớp Ck Si,j am lam Recursive-Schedule(S) if |S| = then return Gọ Ck l lớp 4L a Ck Gọ S' l ả p S lớp ắ ầ ướ a Ck S; ả O = Recursive-Schedule(S') return O {Ck} Dựa ê O(n O l l l T êm T am ă s a ụ y aS s m e mộ s p ộp p ả a l ă xp lp Iterative-Schedule(S) n = |S| 2m=– O = {} for i = n if si m then O = O {Ci} m = fi return O M ọa ự : 62 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật 63 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật T ê sa : “Gọ O l p lớp Cl ỳm l C ọ s ay a ụ C y p lựa ọ ê lớp Cl x ự C k l lớp ộ mộ lớp V y ượ a l êm ượ s x ắ ựa ê O T ố ộ C k lớp s a lớ m p mụ ê ô lm ượ ả y m sa : am ă l ố Sự ự a a mộ lựa ê Ch ý: T m ố T ố ượ a ă mộ m ố m ố ố ố p mal substructure) ả a am ă a ọ V am ă mộ số ọ l ố ượ ô ố lựa ọ am ă ee y e p pe y : Mộ m ố ự lựa ọ ẻ l ố m mm ợ ý ố m Hay mộ m ố ượ ự lựa + Mộ m ố p ầ ượ x y ự m ố s a y ượ ọ l p m ố + T m mộ ộ ụ c tham am qui hoạch động am ă s B y ố ù O : T ay m số lượ lớ yê ầ l m ộ a ay am ă e ê s So sánh chiến a ượ ô ầ a l ọ ố ụ a me l C ướ ộ ô ầ mộ m a l mộ T am ă l m m ố ộ ả xy ự ượ am ă m ọ ợp m ầ m 64 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật TÀI LIỆU TH HẢ pe a “T a ự y V http://vi.wikipedia.org/wiki/ pe a “T a ự y A http://en.wikipedia.org/wiki/Main_Page C l ả e s e: http://csce.unl.edu/~cusack/Teaching/?page=notes Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest and Clifford Stein, “I Al ms Se T e MIT P ess 001 1180 pa es Jeff Cogswell, Christopher Diggins, Ryan Stephens, Jonathan Turkanis, “C++ C O’Re lly N em e 00 pa es N y H Đ G mộ số NXB G ụ 003 Đ M Tư C l NXB Đ ọ ố a H ộ 2002 65 ài giảng môn học Phân tích thiết kế đánh giá giải thuật ĐỀ THI TH HẢ Đề số Câu 1: a) T l s m m Hy m m y x p sa : b) V m nhân ồm ô y ướ ọ ă ộp ầ p ê mả công Tên T Lư Tư a x p l lư ù lư e ê Câu 2: a) T y s x số số x p ộ mả ộ p p m b) T ự ướ 10, 9, 82, 4, 78, 28, 9, 10, 13, 11 số yê sa : Câu 3: a) T y y ma p ụ m số p p ự y ma ướ : x 0x10 10x 0x1 b) T y m y ồm p ầ lê p lớ y số yê sa : -9, 8, -3, 18, 4, -2, 8, -13, 20, -4, 8, 9, Đề số Câu 1: a) T l s m b) V m nhân ồm ô m Hy m m x p sa : y ? ă p ọ ướ ầ ộp p ê mả công Tên H số lư P ụ Tư a p x p l lư số lư * 0+p ụ p Câu 2: a) T y p s x số số ộ p m 66 ài giảng môn học Phân tích thiết kế đánh giá giải thuật b) T ự ướ x p 8, 10, 9, 82, 4, 78, 28, 9, 10, 13, 11 a mả số yê sa : Câu 3: a) T y y ma p ụ m số p p y ma ướ : x x 0x10 10x m y ồm p ầ lê p lớ yê sa : -8, 9, 7, -2, -19, 2, -9, 2, 3, 28, -9 ự b) T y y số Đề số Câu 1: a) T l s m m Hy y m m y x p chèn ă sa : b) V m nhân ồm ô ướ ầ ộp ê mả p công Tên T Lư Tư a x p l lư ù lư e Câu 2: a) T y s p p m b) T ự ướ 10, 9, 82, 4, 78, 28, 9, 10, 13, 11 số x p ộ mả yê số ầ ê yê sa : Câu 3: a) T y y ma ự y p ụ m số p p ướ : x 0x10 10x ma 0x1 Đề số Câu 1: a) T l s b) V m m công nhân ồm m Hy m m x p ô p y ? ướ ự ộp p ă ầ p ê mả sa : Tên T Lư Tư a x p l lư ù lư e 67 ài giảng mơn học Phân tích thiết kế đánh giá giải thuật Câu 2: a) T y s x số số ộ p p m b) T ự ướ x p 3, 8, 10, 9, 82, 4, 78, 28, 9, 10, 13, 11 a mả số yê sa : Câu 3: a) T y y ma ự b) p ụ “ABCABCCB y ma m x X BCAABCCA p ụ m số p p ướ : x 0x10 10x 0x1 a x X1 Đề số : Câu 1: a) T l s m m Hy m m y x p sa : b) V m sinh ồm ô y ọ ă ướ ộp ầ ê mả p Họ Tên T Đ m e Tư a x p l m ù m Câu 2: a) T y s x số số 3, 7, ộ p p m b) T ự ướ 10, 9, 82, 4, 78, 28, 9, 10, 13, 11 x p ộ mả số yê sa : Câu 3: a) T y ự b) T y ma y y ma mx p ụ m số p p ướ : 15x5, 5x20, 20x10, 10x15 a x 68