.c
om
ng
co
an
th
ng
du
o
u
cu
Company
LOGO
1
CuuDuongThanCong.com
/>
Các nội dung:
u
du
o
ng
th
an
co
ng
.c
om
Đệ quy là gì?
Đệ quy và lặp
Tháp Hà nội
Dãy số Fibonacci
Tìm kiếm nhị phân
Chuyển số nguyên sang dãy ký tự ASCII
Cấu trúc dữ liệu cây – cây nhị phân
cu
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
2
Đệ quy là gì?
n
cu
u
du
o
ng
th
an
co
ng
.c
om
Ví dụ 18.1: Tính tổng i
1
int RunningSum(int n)
{
if (n == 1)
return 1;
else
return n + RunningSum(n-1);
}
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
3
ĐỆ QUY VÀ LẶP
cu
u
du
o
ng
th
an
co
ng
.c
om
Tất cả các hàm đệ quy đều có thể được viết
bằng vịng lặp.
Việc sử dụng đệ quy sẽ dễ dàng và trong
sáng hơn khi dùng vịng lặp.
Bản đệ quy tương đối chậm vì các hàm đệ quy
chịu sự gọi hàm cịn vịng lặp thì khơng.
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
4
THÁP HÀ NỘI
cu
u
du
o
ng
th
an
co
ng
.c
om
Bài tốn: một nền có ba cột, một trong ba cột có các
đĩa gỗ sắp theo thứ tự đĩa nhỏ ở trên đĩa lớn ở dưới.
Chúng ta phải chuyển tất cả các đĩa từ cột hiện thời
qua một trong hai cột kia theo hai luật sau: mỗi lần
chỉ được di chuyển một đĩa và đĩa lớn khơng được đặt
trên đĩa nhỏ.
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
5
.c
om
DÃY SỐ FIBONACCI
Ta có phương trình tốn truy hồi sau
co
ng
f (n) = f (n - 1) + f (n - 2)
th
an
f (1) = 1
du
o
ng
f (0) = 1
cu
u
hàm đệ quy để tính số Fibonacci thứ n là phương
trình truy hồi trên.
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
6
CÁC BÀI TỐN
cu
u
du
o
ng
th
an
co
ng
.c
om
Tìm kiếm nhị phân
Chuyển số ngun sang chuỗi ký tự ASCII
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
7
.c
om
ng
co
an
th
ng
du
o
u
cu
CuuDuongThanCong.com
© TS. Nguyễn Phúc Khải
/>
8