1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật (phần 2) pptx

10 355 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 10
Dung lượng 214,42 KB

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

Nội dung

Cận trên, cận dưới: • └X┘ Giá trị nguyên lớn nhất, nhỏ hơn hoặc bằng X... Cây nhị phân: • Khái niệm: Cây nhị phân là cây mà mỗi nút có tối đa 2 cây con... Phép tổng: Thường được tính tro

Trang 1

Cơ stoán hc

1 Cận trên, cận dưới:

• └X┘ Giá trị nguyên lớn nhất, nhỏ hơn hoặc

bằng X Ví dụ: └2.5┘=2; └-7.3┘=-8

• ┌X┐ Giá trị nguyên nhỏ nhất, lớn hơn hoặc

bằng X Ví dụ: └2.5┘=3; └-7.3┘=-7

2 Logarithms: Giải thuật tăng chậm hơn sự tăng

N

• log2N = lgN; log10N = logN

• X>Y  logBX> logBY

Trang 2

Cơ stoán hc

• logB1=0

• logBB=1

• logB(X*Y)= logBX+ logBY

• logBXY =Y*logBX

• logAX= logBX/ logBA

3 Cây nhị phân:

Khái niệm: Cây nhị phân là cây mà mỗi nút có

tối đa 2 cây con

Trang 3

Cơ stoán hc

- Cây nh ị phân có N

nút:

+ S ố bậc ít nhất:

└lgN┘

+ S ố bậc tối đa: N-1

- Ví d ụ: Cây nhị phân có 15 nút, có ít nhất là

└lg15┘=└3.9┘=3 bậc

- Ở bậc K, có 2 K nút

Trang 4

Cơ stoán hc

4 Xác suất:

5 Phép tổng: Thường được tính trong vòng lặp

6 Sự tăng

của hàm số

Trang 5

Cơ stoán hc

7 Phân loại sự tăng:

• Omega lớn: g(x) thuộc Ω(f), g(n)>=cf(n), mọi

n>=n0

• O lớn: Một hàm g(N) được gọi là O(f(N)) nếu

tồn tại hai hằng số c0 và N0 sao cho g(N) nhỏ

hơn c0 với mọi N>N0

• Theta lớn: Theta(f) = Ω(f) ∩ O(f)

Trang 6

Thut toán chia đtr

1 Khái niệm: Giải thuật chia để trị (divide and

conquer) là phân rã vấn đề thành những vấn đề con để giải quyết, sau đó kết hợp lại

2 Giải thuật đệ qui: Để giải quyết 1 vấn đề, giải

thuật gọi lại chính nó 1 hay nhiều lần để giải quyết những vấn đề con

3 Giải thuật chia để trị: Gồm 3 bước

Trang 7

Thut toán chia đtr

 Ví dụ: Tính n!

int factorial (int n)

{ if (n == 0) return 1;

else return n * factorial(n - 1);

}

 Tính tối ưu của giải thuật đệ qui?

int factorial (int n)

{ int c, fact = 1;

for (c = 1; c<= n; c++)

fact*= c;

return fact;

}

Trang 8

Thut toán chia đtr

www.hoasen.edu.vn 18

 Chương trình đệ qui chiếm nhiều vùng

nh ớ hơn chương trình không đệ qui, đồng thời chiếm nhiều thời gian hơn do

v ừa phải cất và lấy các trị từ ngăn xếp,

v ừa phải thực hiện tính toán

Cây đệ qui tính giai thừa

Hàm đệ qui Hàm không đệ qui

n,n-1,n-2,…,2,1

Trang 9

Thut toán chia đtr

Bài tập:

1 Viết thuật toán đệ qui và không đệ qui để tính dãy

số Fibonacci

int Fib (int n)

}

2 Tìm ước số chung lớn nhất của 2 số m, n Ví dụ: GCD(15,9)=3, GCD(51,34)=17

Trang 10

Duyt cây đqui

• Cây nhị phân với các thứ tự duyệt cây như sau:

Duy ệt theo thứ tự trước (NLR)

Duy ệt theo thứ tự giữa (LNR)

Duy ệt theo thứ tựï sau (LRN)

Ngày đăng: 09/07/2014, 17:20

TỪ KHÓA LIÊN QUAN

w