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

Bài giảng cấu trúc dữ liệu chương 12 nguyễn xuân vinh

55 327 0

Đ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 55
Dung lượng 256,11 KB

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

Ngày đăng: 03/12/2015, 06:44

TỪ KHÓA LIÊN QUAN