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