Phân tích thiết kế và đánh giá giải thuật toán potx

74 527 1
Phân tích thiết kế và đánh giá giải thuật toán potx

Đ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

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 1 0,5 0,5 1,5 1 1 1 1 1 0,5 1,5 1 1,5 12 KT 0,5 11 BT 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 BẢN ả - Algorithm a 1.1 Đ Đ B Mô ả S ướ ụ Độ p s ự lư p 3.1 C ả l – Algorithm Complexity ê Đ a 3.3 C ự a 3.4 C a ộp lớp p C l – Data structure C lượ D y ộ Đ D lượ CH ea C e am lam G ee y 10 B ay l – Backtracking C a C x a s e sea ộ 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 m Heap x p y ả 23 ố Heap s 24 31 C B CH 33 p 33 NG III: Đ UI VÀ CHI N L m C lượ CH K C lượ 34 B ay l NG IV: CHI N L C s Sắp x p ộ Sắp x p Tm CH B e Ba lượ a a Me e s a m e 34 / ya e 35 C CHIA Đ TR 38 D p ea C e 38 38 s 43 46 p 48 NG V: UI HOẠCH ĐỘNG 49 C B 1: D y B :B P B CH C V T CẠN 34 lượ ộ 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  ik  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 ... học Phân tích thiết kế đánh giá giải thuật số ài tập H y a số ài tập p ụ a s ượ a ả số a yê ố ả số yê N 12 ài giảng môn học Phân tích thiết kế đánh giá giải thuật CHƯƠNG II: S P XẾP (S RTING) VÀ... 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... temp; } ài giảng mơn học Phân tích thiết kế đánh giá giải thuật } Số phép tính thu t toán cần thực hi n ượ (N-1) + (N- + + +1 sau: N* N-1)/2 Phân tích chi ti N* N-1)/2 số phép toán so sánh cần thực

Ngày đăng: 15/03/2014, 19:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan