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

slike bài giảng cấu trúc dữ liệu và giải thuật - đỗ bích diệp chương 2 giải thuật đệ qui

19 594 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 338,21 KB

Nội dung

Cấu trúc liệu giải thuật Cấu trúc liệu Giải thuật Chương II Giải thuật đệ qui Giải thuật đệ qui Nội dung Các khái niệm Một số ví dụ Phân tích giải thuật đệ qui Đố Bích Diệp- Khoa CNTT-ĐHBKHN Cấu trúc liệu giải thuật Một số đối tượng đệ qui Một số đối tượng đệ qui Hàm đệ qui: – Là hàm xác định phụ thuộc vào biến nguyên không âm n theo sơ đồ: 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 Cấu trúc liệu giải thuật Một số đối tượng đệ qui Tập hợp đệ qui – Là tập xác định sau 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ó Một số đối tượng đệ qui Định nghĩa đệ qui xâu ký tự – A = bảng chữ cái, tập xâu S bảng chữ A xác định 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 Cấu trúc liệu giải thuật Một số đối tượng đệ qui Cây – Định nghĩa đệ qui 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 Giải thuật đệ qui – – Đị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 Bước sở – 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 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 A Đệ qui gián tiếp: A B … A Đệ qui đuôi Lời gọi đệ qui luôn nằm cuối giải thuật Giải thuật đệ qui – 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 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 recursiveFactorial * = 24 final answer (4 ) return call recursiveFactorial *2 = (3 ) return call recursiveFactorial *1 = (2 ) return call recursiveFactorial (1 ) return call recursiveFactorial *1 = 1 (0 ) Giải thuật đệ qui Dãy Fibonacci if n = ⎧0 ⎪ Fibonacci ( n ) = ⎨1 if n = ⎪ Fibonacci ( n − 1) + Fibonacci ( n − 2) otherwise ⎩ – 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)) popStack(s, n) R(n) End P Đố Bích Diệp- Khoa CNTT-ĐHBKHN 16 Cấu trúc liệu giải thuật Khử đệ qui Algorithm P (n) if (n = 0) print("Stop") else Q(n) P(n - 1) End P Khử đệ qui Algorithm P (n) if (n = 0) print("Stop") else Q(n) P(n - 1) End P Đố Bích Diệp- Khoa CNTT-ĐHBKHN Algorithm P (n) loop (n > 0) Q(n) n=n-1 print("Stop") End P 17 Cấu trúc liệu giải thuật Đệ qui có nhớ Một kỹ thuật sử dụng tốn đệ qui có việc lặp lặp lại lời gọi tốn Làm tăng tính hiệu giải thuật đệ qui Fibonacci(6) Fibonacci(5) Fibonacci(4) Fibonacci(3) Fibonacci(2) Fibonacci(2) Fionacci(4) Fibonacci(3) Fibonacci(2) Fibonacci(1) Fibonacci(3) Fibonacci(2) Fibonacci(2) Fibonacci(1) Fibonacci(1) Đệ qui có nhớ – Ý tưởng khắc phục: 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 18 Cấu trúc liệu giải thuật Đệ qui có nhớ Hàm đệ qui tố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 Hàm đệ qui có nhớ 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 Đố Bích Diệp- Khoa CNTT-ĐHBKHN 19 ... 22 b + 2b + b =2 = 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 ] Khi n = k-1 ta có Khử đệ qui – Một hàm đệ qui giải tương... TOWER( n-1, B, A, C); end End 14 Cấu trúc liệu giải thuật Phân tích giải thuật đệ qui T(n) = 2T(n – 1) + b = 2[ 2T(n – 2) + b] + b = 22 T(n – 2) + 2b + b [2T(n – 3) + b] + 2b + b = 23 T(n – 3) + 22 b... Đố Bích Diệp- Khoa CNTT-ĐHBKHN C Cấu trúc liệu giải thuật Giải thuật đệ qui Bước sở : n

Ngày đăng: 24/10/2014, 15:02

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN