1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 429 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 411,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

NGUY N V QU C H NG NGUY N QU NH DI P

TRONG THI T K GI I THU T VÀ

TOÁN

HÀ N I ậ 2012

Trang 2

1

C H 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

Trang 3

2

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

Trang 4

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:

Trang 5

4

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],

Trang 6

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, S1, S2là các câu l nh

* Câu l nh tuy n:

case

B1 : S1;

B2 : S2;

Bn : Sn else

Sn+1 end case

Trang 7

6

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

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

HÌNH ẢNH LIÊN QUAN

Hình 1.1.  Nhân 2 s  nguyên l n - 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ình 1.1. Nhân 2 s nguyên l n (Trang 3)
Hình 1.3 . Phép nhân ki u chia đ  tr - 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ình 1.3 Phép nhân ki u chia đ tr (Trang 4)
Hình 1.4.  Phép nhân ki u chia đ  tr - 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ình 1.4. Phép nhân ki u chia đ tr (Trang 5)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w