WM cấu trúc dữ liệu va giải thuật đỗ bích diệp chương 2 giải thuật đệ quy sinhvienzone com

19 49 0
WM cấu trúc dữ liệu va giải thuật đỗ bích diệp chương 2 giải thuật đệ quy sinhvienzone com

Đ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

Cấu trúc liệu giải thuật om Cấu trúc liệu Giải thuật Vi en Zo ne C Chương II Giải thuật đệ qui nh Giải thuật đệ qui Nội dung khái niệm ™ Một số ví dụ ™ Phân tích giải thuật đệ qui Si ™ Các Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Vi en Zo ne C om Một số đối tượng đệ qui nh Một số đối tượng đệ qui z Hàm đệ qui: Si – Là hàm xác định phụ thuộc vào biến nguyên không âm n theo sơ đồ: z z Bước sở : xác định giá trị hàm giá trị n giá trị nhỏ biến Bước đệ qui: Cho giá trị f(k) , đưa qui tắc để tính f(k+1) Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Một số đối tượng đệ qui z Tập hợp đệ qui – Là tập xác định sau z Bước sở: Định nghĩa tập sở Bước đệ qui: Xác định qui tắc để sản sinh tập từ tập có Vi en Zo ne C om z nh Một số đối tượng đệ qui z Định nghĩa đệ qui xâu ký tự Si – A = bảng chữ cái, tập xâu S bảng chữ A xác định z z Xâu rỗng xâu S Nếu w thuộc S x ký tự A wx xâu S Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Một số đối tượng đệ qui z Cây – Định nghĩa đệ qui z Một nút tạo thành Nếu có n T1, T2, …, Tn với nút gốc r1, r2, … , rn; r nút có quan hệ cha-con r1, r2, … , rn tồn T nhận r làm gốc Vi en Zo ne C om z nh Giải thuật đệ qui Si – – Định nghĩa: Giải thuật đệ qui giải thuật định nghĩa sử dụng giải thuật có dạng giống Cấu trúc thuật toán đệ qui bao gồm bước z Bước sở – z Với giá trị đầu vào đủ nhỏ, tốn giải trực tiếp Bước đệ qui – – Lời gọi đến giải thuật định nghĩa Lời gọi đệ qui phải định nghĩa để tiến gần đến bước sở Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Các dạng giải thuật đệ qui – – – Đệ qui trực tiếp : A Đệ qui gián tiếp: B Ỉ…ỈA Đệ qui đuôi Lời gọi đệ qui luôn nằm cuối giải thuật Vi en Zo ne C om z nh Giải thuật đệ qui Si – Ví dụ: Hàm tính n! if n = ⎧ Fact ( n) = ⎨ ⎩n * Fact ( n − 1) if n > Function recursiveFactorial(n) Begin {Tính giá trị n! } if n = then return else return n*FACT(n-1); End Trường hợp sở Lời gọi đệ qui Tổ hợp kết Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Giải thuật đệ qui Hình dung việc thực giải thuật tính n! return call final answer (4 ) return call recursiveFactorial *2 = om recursiveFactorial * = 24 (3 ) return call recursiveFactorial (2 ) *1 = C – return call call (1 ) ne recursiveFactorial *1 = 1 (0 ) Vi en Zo recursiveFactorial return nh Giải thuật đệ qui Dãy Fibonacci if n = ⎧0 ⎪ Fibonacci ( n ) = ⎨1 if n = ⎪ Fibonacci ( n − 1) + Fibonacci ( n − 2) otherwise ⎩ Si – Function Fibonacci(n) Begin {Tính giá trị n! } if n 0) Q(n) push(s, n) n=n-1 print ("Stop") loop (not emptyStack (s)) Si Algorithm P (n) popStack(s, n) R(n) End P Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com 16 https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Khử đệ qui Algorithm P (n) if (n = 0) print("Stop") Q(n) P(n - 1) om else Vi en Zo ne C End P nh Khử đệ qui Si Algorithm P (n) if (n = 0) print("Stop") else Q(n) P(n - 1) End P Algorithm P (n) loop (n > 0) Q(n) n=n-1 print("Stop") End P Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com 17 https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Đệ qui có nhớ z z Một kỹ thuật sử dụng tốn đệ qui có việc lặp lặp lại lời gọi toán Làm tăng tính hiệu giải thuật đệ qui om Fibonacci(6) Fibonacci(5) Fibonacci(2) Fibonacci(2) Fibonacci(2) Fibonacci(2) Fibonacci(2) Fibonacci(1) Fibonacci(1) Vi en Zo Fibonacci(1) Fibonacci(3) ne Fibonacci(3) Fibonacci(3) C Fibonacci(4) Fionacci(4) nh Đệ qui có nhớ – Ý tưởng khắc phục: Si z z Ghi lại lời giải toán sử dụng biến giải thuật Ví dụ: Bài tốn tính hệ số nhị thức C (n,0) = (n ≥ 0) C (n, n) = (n ≥ 0) C (n, k ) = C (n − 1, k − 1) + C (n − 1, k ) < k < n Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com 18 https://fb.com/sinhvienzonevn Cấu trúc liệu giải thuật Đệ qui có nhớ Hàm đệ qui toán Function C(n,k) Begin if ( k == 0) || (k ==n) then return 1; else return C(n-1,k-1) + C( n-1,k); End z Hàm đệ qui có nhớ Si nh Vi en Zo ne C Function C(n,k) Begin if D[n,k] > then return D[n,k]; else D[n,k] = C(n-1,k-1) + C( n-1,k); return D[n,k]; End om z Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone.com 19 https://fb.com/sinhvienzonevn ... CNTT-ĐHBKHN SinhVienZone. com 14 https://fb .com/ sinhvienzonevn Cấu trúc liệu giải thuật Phân tích giải thuật đệ qui C om T(n) = 2T(n – 1) + b = 2[ 2T(n – 2) + b] + b = 22 T(n – 2) + 2b + b = 23 T(n... = 23 T(n – 3) + 22 b + 2b + b = [2T(n – 3) + b] + 2b + b = 23 [2T(n – 4) + b] + 22 b + 2b + b = 24 T(n – 4) + 23 b + 22 b + 21 b + 20 b = …… = 2k T(n – k) + b[2k- + 2k– + 21 + 20 ] Vi en Zo ne Khi... sở Đố Bích Diệp- Khoa CNTT-ĐHBKHN SinhVienZone. com https://fb .com/ sinhvienzonevn Cấu trúc liệu giải thuật Các dạng giải thuật đệ qui – – – Đệ qui trực tiếp : A Đệ qui gián tiếp: B Ỉ…ỈA Đệ qui

Ngày đăng: 30/01/2020, 21:08

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

Tài liệu liên quan