một số phương pháp cơ bản trong thiết kế giải thuật và đánh giá độ phức tạp thuật toán

7 426 0
một số phương pháp cơ bản trong thiết kế giải thuật và đánh giá độ phức tạp thuật toán

Đang tải... (xem toàn văn)

Thông tin tài liệu

TRNG I HC S PHM HÀ NI TRUNG TÂM GIÁO DC T XA NGUYN V QUC HNG NGUYN QUNH DIP MT S PHNG PHỄP C BN TRONG THIT K GII THUT VÀ ỄNH GIỄ  PHC TP THUT TOÁN HÀ NI ậ 2012 Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 1 CHNG 1 DN NHP 1.1 Algorithm? T algorithm đc đt ra t th k th 9 bi nhà toán hc Bat (Iran) Abu Ja’fa Mohammed ibn Khowarizmi đc hiu đn gin là tp các quy tc cha đng các phép tính toán đc thc hin bng tay hoc máy móc, trong tài liu này ta luôn hiu là gii thut đc xây dng cho máy tính. Algorthmics là thut ng đ ch s nghiên cu v gii thut. Khi ta gii quyt vn đ vic đu tiên quan trng là quyt đnh la chn mt gii thut có kh nng đ s dng. Tu thuc vào yêu cu ca bài toán và gii hn kh nng ca thit b, chúng ta cn chn đc gii thut thc hin vi thi gian ít nht hoc vi không gian lu tr nh nht hoc d lp chng trình nht,  tho mãn nhng nhân t này, ngoài kh nng v tc đ và không gian lu tr ca thit b đc dùng cn phi đ ý thit k gii thut. Algorthmics là khoa hc nghiên cu v cách xác đnh hiu qu ca nhng nhân t bin đi bên ngoài, cho phép la chn mt gii pháp tt nht cho nhng tình hung đc bit; đó chính là khoa hc cho chúng ta bit phi làm nh th nào đ xây dng mt gii thut mi cho nhng tác v riêng bit. Ta ly s hc s cp làm ví d. Gi s, ta phi nhân hai s nguyên dng ch s dng bút và giy. Nu thc hin theo kiu Bc M, chúng ta ln lt thc hin phép nhân vi các s t phi qua trái, mi kt qu đc vit trên mt dòng vi s cui cùng bên phi đc trt trái mt v trí so vi kt qu dòng trên và cui cùng cng tt c các dòng s đc kt qu mong mun. Nu thc hin theo kiu đc dy trong nhà trng Anh thì ta li bt đu t bên trái qua phi. Phép nhân 981 và 1234 đc ch ra theo Hình 1.1. Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 2 981 981 1234 1234 3924 981 2943_ 1962 1962__ _2943 981___ __3924 1210554 1210554 Hình 1.1. Nhân 2 s nguyên ln Ta nhn thy rng, hai gii thut này là tng đng, thuc loi phân lp, mt gii thut th ba khác hn đc gi là nhân theo kiu Nga đc trình bày nh sau: 981 1234 1234 490 2468 245 4936 4936 122 9872 61 19744 19744 30 39488 15 78976 7896 7 157952 157952 3 315904 315904 Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 3 1 631808 631808 1210554 Hình 1.2. Nhân theo kiu Nga Gii thut này rt thích hp vi các mch tính nh phân. Mt khác, vi ngi tính toán không cn hc thuc mt bng nhân nào. Cái ngi ta cn bit ch là phép cng và nhân chia cho 2. Còn mt gii thut khác đc trình bày nh Hình 1.3 và 1.4 di đây. Gii thut này cn làm cho hai s hng tham gia vào phép nhân có đ dài bng nhau (s dng s 0 cho thêm vào đu), đ dài là mt ly tha ca 2 (1, 2, 4, 6, 8, …).  nhân 0981 vi 1234 , đu tiên ta nhân tng na ca ca các toán hng vi nhau: na bên trái ca toán hng nhân (09) đc nhân vi ln lt na bên trái ca toán hng kia (12 và 34), ri tip tc na bên phi ca nó cng đc nhân nh vy. Ta có 4 phép nhân, kt qu đc sp xp và cng li xem Hình 1.3. Toán hng nhân Trt Kt qu i) 09 12 4 108 ii) 09 34 2 306 iii) 81 12 2 972 iv) 81 34 0 2754 1210554 Hình 1.3. Phép nhân kiu chia đ tr Cng vi cách thc nh vy, chúng ta li áp dng đi vi các phép nhân 09 x 12, 09 x 34, 81 x 12 và 81 x 34. Chng hn, phép nhân 09 x 12 đc thc hin nh sau: Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 4 Toán hng nhân Trt Kt qu i) 0 1 2 0 ii) 0 2 1 0. iii) 9 1 1 9. iv) 9 2 0 18 108 Hình 1.4. Phép nhân kiu chia đ tr Phép nhân đc tin hành nh vy đc gi là thc hin theo gii thut chia đ tr (divide and conquer), đ nhân hai s nguyên ln ta đã chia nh ra, cui cùng ch thc hin phép nhân hai s có mt ch s và các phép cng. 1.2. Biu din gii thut. Chúng ta có th s dng ngôn ng t nhiên đ trình bày mt gii thut, nhng ngôn ng t nhiên có nhc đim v tính chính xác. Trong giáo trình này chúng ta s dng ngôn ng phng trình, mt ngôn ng vn đc dùng trong các nhà trng, gn ging vi ngôn ng Pascal. * Ký t và biu thc: Bng ch cái và du phép toán theo bng mã ASCII Giá tr logic: true, false Phép toán logic: and, or, not Bin ch s: a[i], a[i,j], a[i, j, k], Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 5 * Các cu trúc d liu: Integer, Real, Char, Logical, String. Khi cn chúng ta có th b xung thêm cu trúc d liu. * Phép gán: <tên bin>  <biu thc> hoc <tên bin> := <biu thc> * Phép ghép lnh: begin <các câu lnh> end * Câu lnh thc hin theo điu kin: if B then S if B then S 1 else S 2 Trong đó: B là mt biu thc logic. S, S 1 , S 2 là các câu lnh * Câu lnh tuyn: case B1 : S1; B2 : S2; Bn : Sn else Sn+1 end case Chng 1. Dn nhp Nguyn V Quc Hng-Nguyn Qunh Dip 6 * Câu lnh lp: for <tên bin> := m to n do S for <tên bin> := m downto n do S While B do S Repeat <các câu lnh> until B Trong đó: S là câu lnh, B là biu thc logic, m và n (các giá tr đm đc) là các giá tr khi đu và kt thúc. * Vào, ra: read (<danh sách bin>) write (<danh sách bin>) * M đu và Kt thúc chng trình: begin end. * Chng trình con hàm: function <tên hàm> (<danh sách tham s>) : kiu d liu; <chng trình> return * Chng trình con th tc: procedure <tên th tc> (<danh sách tham s>); <chng trình> return . vn đc dùng trong các nhà trng, gn ging vi ngôn ng Pascal. * Ký t và biu thc: Bng ch cái và du phép toán theo bng mã ASCII Giá tr logic: true, false Phép toán logic: and,. Repeat <các câu lnh> until B Trong đó: S là câu lnh, B là biu thc logic, m và n (các giá tr đm đc) là các giá tr khi đu và kt thúc. * Vào, ra: read (<danh sách bin>). PHM HÀ NI TRUNG TÂM GIÁO DC T XA NGUYN V QUC HNG NGUYN QUNH DIP MT S PHNG PHỄP C BN TRONG THIT K GII THUT VÀ ỄNH GIỄ  PHC TP THUT TOÁN HÀ

Ngày đăng: 02/02/2015, 17:23

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