Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - ThS. Nguyễn Thị Khiêm Hòa (ĐH Ngân hàng TP.HCM)
lượt xem 12
download
Nội dung chính của chương 2 Đệ quy và giải thuật đệ quy nằm trong bài giảng cấu trúc dữ liệu và giải thuật nhằm trình bày về các nội dung chính: tổng quan về đệ quy, tối ưu và khử đệ quy, ứng dụng của giải thuật đệ quy từ đó giúp sinh viên hiểu rõ giải thuật đệ quy, ưu và khuyết điểm của giải thuật đệ quy, phương pháp khử đệ quy, một số bài toán ứng dụng giải thuật đệ quy điển hình.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - ThS. Nguyễn Thị Khiêm Hòa (ĐH Ngân hàng TP.HCM)
- Chương 2: Đệ quy và giải thuật đệ quy Giảng viên: Ths. Nguyễn Thị Khiêm Hòa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
- Nội dung Tổng quan về đệ quy Tối ưu và khử đệ quy Ứng dụng của giải thuật đệ quy Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 2
- Mục tiêu Hiểu rõ giải thuật đệ quy Ưu và khuyết điểm của giải thuật đệ quy Phương pháp khử đệ quy Một số bài toán ứng dụng giải thuật đệ quy điển hình. Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 3
- Tổng quan về đệ quy Khái niệm Giải thuật đệ quy Một thuật toán được gọi là đệ quy nếu nó giải bài toán bằng cách rút gọn liên tiếp bài toán gốc thành bài toán cũng như vậy nhưng có đầu vào nhỏ hơn. Hàm đệ quy Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 4
- Tổng quan đệ quy Ví dụ: Xét bài toán tìm một từ trong quyển từ điển: If (từ điển là một trang) tìm từ trong trang này else { Mở từ điển vào trang “giữa” Xác định xem nửa nào của từ điển chứa từ cần tìm; if (từ đó nằm ở nửa trước) tìm từ đó ở nửa trước else tìm từ đó ở nửa sau. } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 5
- Nguyên tắc hoạt động Tính chất không thể thiếu đối với đệ quy là tính hữu hạn Hàm đệ quy về cơ bản gồm hai phần: Phần cơ sở (Phần neo): Phần đệ quy: Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 6
- Thiết kế giải thuật đệ qui Để xây dựng giải thuật đệ quy , ta cần thực hiện tuần tự 3 nội dung sau : Thông số hóa bài toán . Tìm các trường hợp neo cùng giải thuật giải tương ứng . Tìm giải thuật giải trong trường hợp tổng quát bằng phân rã bài toán theo kiểu đệ quy. Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 7
- Cài đặt hàm đệ quy Cấu trúc hàm đệ qui như sau If (suy biến) ; Else { ; ; ; } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 8
- Ưu và nhược điểm của đệ qui Ưu điểm: Sáng sủa, dễ hiểu, nêu rõ bản chất vấn đề Tiết kiệm thời gian hiện thực mã nguồn Nhược điểm: Tốn nhiều bộ nhớ, thời gian thực thi lâu Một số bài toán không có lời giải đệ quy Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 9
- Phân loại giải thuật đệ qui Đệ quy phân thành 2 loại : Đệ quy trực tiếp: Đệ quy gián tiếp (Tương hỗ): A() B() A() B() C() Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 10
- Một số dạng giải thuật đệ quy đơn giản Đệ quy tuyến tính. Hàm đệ qui tuyến tính dạng: P () { if (điều kiện dừng) { } Else { [Tập lệnh A]; P(); [Tập lệnh B]; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 11
- Một số dạng giải thuật đệ quy đơn giản Ví dụ 1 : Hàm Fact(n) tính số hạng n của dãy n!, định nghĩa như sau: fact0 =1 ; fn = n*factn-1; (n>=1) longint Fact(int n) { if (n==0) return 1; else return n*Fact(n-1); } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 12
- Một số dạng giải thuật đệ quy đơn giản Đệ quy nhị phân. P () { if (điều kiện dừng) { } Else { [Tập lệnh A]; P(); [Tập lệnh B]; P(); [Tập lệnh C]; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 13
- Một số dạng giải thuật đệ quy đơn giản Ví dụ 1:Tính số hạng thứ n của dãy Fibonaci được định nghĩa như sau: f1 = f0 =1 ; fn = fn-1 + fn-2 ; (n>1) int Fibo(int n) { if ( n < 2 ) return 1 ; else return (Fibo(n -1) + Fibo(n -2)) ; } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 14
- Một số dạng giải thuật đệ quy đơn giản Đệ quy phi tuyến. P () { for (int i = 1; i
- Một số dạng giải thuật đệ quy đơn giản Ví dụ: Cho dãy {Xn} xác định theo công thức truy hồi: x0 = 1 ; xn = n2x0 + (n-1)2x1 + . . . + 22xn-2 + 12xn-1 int X(int n ) { if (n == 0) return 1; else { int tg = 0; for (int i = 0 ; i
- Một số dạng giải thuật đệ quy đơn giản Đệ qui tương hỗ: P2();// khai báo nguyên mẫu P1() { [ Tập lệnh A ]; P2 (); [ Tập lệnh B]; } P2 () { [ Tập lệnh C]; P1 (); [Tập lệnh D]; } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 17
- Một số dạng giải thuật đệ quy đơn giản Ví dụ: Tính số hạng thứ n của hai dãy {Xn}, {Yn} được định nghĩa như sau: X0 =Y0 =1 ; Xn = Xn-1 + Yn-1; (n>0) Yn = n2Xn-1 + Yn-1; (n>0) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 18
- Một số dạng giải thuật đệ quy đơn giản long TinhYn(int n); long TinhXn (int n) { if(n==0) return 1; return TinhXn(n-1) + TinhYn(n-1); } long TinhYn (int n) { if(n==0) return 1; return n*n*TinhXn(n-1) + TinhYn(n-1 } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 19
- Một số bài toán giải bằng giải thuật đệ qui điển hình Bài toán Tháp Hà Nội Bài toán chia thưởng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa
0 p | 491 | 166
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 179 | 17
-
Bài giảng Cấu trúc dữ liệu: Chương 10 - Nguyễn Xuân Vinh
31 p | 95 | 10
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 117 | 9
-
Bài giảng Cấu trúc dữ liệu: Chương Giới thiệu - Nguyễn Xuân Vinh
8 p | 112 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 62 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 59 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 173 | 6
-
Bài giảng Cấu trúc dữ liệu: Chương 5 - Cấu trúc dữ liệu cây
32 p | 86 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Châu Thị Bảo Hà
133 p | 115 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 107 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các khái niệm cơ bản
23 p | 48 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 70 | 3
-
Bài giảng Cấu trúc dữ liệu 1 - Nguyễn Thái Dư
85 p | 81 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 53 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn