Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
Slide 1
Nội dung
Khái niệm đệ quy
Khái niệm đệ quy
Khái niệm đệ quy
Khái niệm đệ quy
Điều kiện viết chương trình đệ quy
Khi nào không nên sử dụng đệ quy
Ví dụ
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
6. Đệ quy (Recursion)
Slide 23
Ví dụ
Thiết kế giải thuật đệ quy
Thiết kế giải thuật đệ quy
Nhận xét
Các dạng của đệ quy
Giải thuật đệ quy dạng chia để trị
Bài toán tháp Hà Nội
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Giải một số bài tập đệ quy
Bài toán tháp Hà Nội
Bài toán tháp Hà Nội
Giải thuật đệ quy dạng quay lui
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Bài toán 8 quân hậu
Qui hoạch động
Qui hoạch động
Qui hoạch động
Tóm tắt
HỎI ĐÁP
Nội dung
GV: NGUYỄN XUÂN VINH CẤU TRÚC DỮ LIỆU DATA STRUCTURES MÔN: CẤU TRÚC DỮ LIỆU [214331] GIẢI THUẬT đệ quy Nguyễn Xuân Vinh /XX 12/3/15 nguyenxuanvinh@hcmuaf.edu.vn GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU 12/3/15 /XX Nội dung Khái niệm đệ quy Thiết kế giải thuật đệ quy GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU 12/3/15 /XX Khái niệm đệ quy đệ quy khái niệm toán học khoa học máy tính Một đối tượng gọi đệ quy phần định nghĩa thông qua khái niệm Trong lĩnh vực lập trình: chương trình gọi đệ quy gọi lại Chương trình đệ quy kiểm tra điều kiện dừng: Nếu không thỏa, tiếp tục gọi đệ quy Nếu thỏa mãn không gọi nữa, chấm dứt đệ quy GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU 12/3/15 /XX Khái niệm đệ quy Ví dụ: Định nghĩa số tự nhiên: 0 số tự nhiên Nếu k số tự nhiên k+1 số tự nhiên Định nghĩa xâu kí tự (chuỗi kí tự) đệ quy: Xâu rỗng xâu kí tự Một chữ ghép với xâu tạo thành xâu Định nghĩa hàm giai thừa n!: Khi n = 0, định nghĩa 0! = Khi n>0, định nghĩa n! = (n-1)! * n GV: NGUYỄN XUÂN VINH Khái niệm đệ quy Ví dụ private int Factor(int n){ if (n==0) return 1; else return n*Factor(n-1); MÔN: CẤU TRÚC DỮ LIỆU } Đặc điểm chương trình đệ quy: Chương trình gọi Khi chương trình gọi mục đích để giải vấn đề tương tự nhỏ Vấn đề nhỏ lúc đơn giản tới mức chương trình tự giải mà không cần phải gọi /XX 12/3/15 GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU 12/3/15 /XX Khái niệm đệ quy Để xây dựng chương trình đệ quy cần tồn công thức đệ quy Công thức gồm phần: Phần đệ quy: recursive case Phần bản: base case Ưu điểm chương trình đệ quy: Có thể thực lượng lớn thao tác tính toán thông qua đoạn chương trình ngắn gọn Có thể định nghĩa tập vô hạn đối tượng thông qua số hữu hạn lời phát biểu GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU 12/3/15 /XX Điều kiện viết chương trình đệ quy Vấn đề cần xử lý phải giải cách đệ quy Ngôn ngữ dùng viết chương trình phải hỗ trợ đệ quy Các loại đệ quy: đệ quy trực tiếp: hàm gọi tới đệ quy gián tiếp: Một hàm gọi tới hàm khác, hàm khác gọi tới hàm bạn đầu GV: NGUYỄN XUÂN VINH Khi không nên sử dụng đệ quy Khi hàm đệ quy gọi tập đối tượng sử dụng hàm như: biến, hằng, cấu trúc… thông số cần cho việc chuyển giao điều khiển sinh Sử dụng đệ quy tạo tính toán thừa, không cần thiết tính chất tự động gọi thực thủ tục chưa kết thúc đệ quy /XX 12/3/15 MÔN: CẤU TRÚC DỮ LIỆU Nếu chương trình viết dạng lặp cấu trúc lệnh khác không nên sử dụng đệ quy GV: NGUYỄN XUÂN VINH Ví dụ Ví dụ : Lập hàm tính n! đệ quy int GT(int n) { MÔN: CẤU TRÚC DỮ LIỆU if (n==0) // điểm dừng return 1; else return n*GT(n-1); /XX 12/3/15 } GV: NGUYỄN XUÂN VINH Đệ quy (Recursion) Minh họa 10 /XX 12/3/15 MÔN: CẤU TRÚC DỮ LIỆU Gọi hàm answer [...]... 31 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải một số bài tập đệ quy 1 đĩa A B C 32 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải một số bài tập đệ quy 1 đĩa A B C 33 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải một số bài tập đệ quy 2 đĩa A B C 34 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải một số bài tập đệ quy 2 đĩa A B C 35 /XX 12/ 3/15... answer ... CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải số tập đệ quy đĩa A B C 34 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải số tập đệ quy đĩa A B C 35 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU... GV: NGUYỄN XUÂN VINH Giải số tập đệ quy đĩa A B C 36 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải số tập đệ quy đĩa A B C 37 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH. .. /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải số tập đệ quy N đĩa A B C 39 /XX 12/ 3/15 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giải số tập đệ quy N đĩa A B C GV: NGUYỄN XUÂN VINH