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

Bài giảng Cấu trúc dữ liệu và giải thuật: Đệ quy - Nguyễn Mạnh Hiển

5 10 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 347,69 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật: Đệ quy trình bày các nội dung: Đệ quy, ví dụ về đệ quy, đệ quy có thể không kết thúc, đệ quy có thể không kết thúc. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Đệ quy

(Recursion)

Nguyễn Mạnh Hiển

Khoa Công nghệ thông tin

hiennm@tlu.edu.vn

Trang 2

Đệ quy

• Hàm đệ quy là một hàm được định nghĩa bằng bản thân nó

• VD: f(0) = 0 và f(x) = 2f(x - 1) + x2 với x > 0

int f(int x)

{

if (x == 0) // trường hợp cơ sở

return 0;

else

return 2*f(x-1) + x*x; // lời gọi đệ quy

}

Trang 3

Ví dụ về đệ quy (tiếp)

Định giá hàm f(x) = 2f(x - 1) + x 2 :

f(4) = 2*f(3) + 4*4

f(3) = 2*f(2) + 3*3

f(2) = 2*f(1) + 2*2

f(1) = 2*f(0) + 1*1

f(0) = 0 f(1) = 2*0 + 1*1 = 1 f(2) = 2*1 + 2*2 = 6

f(3) = 2*6 + 3*3 = 21

f(4) = 2*21 + 4*4 = 58

Gặp trường hợp

cơ sở và bắt đầu quay lui

Trang 4

Đệ quy có thể không kết thúc

• Điều gì xảy ra nếu ta gọi f(-1) sau khi cài đặt hàm f(x) = 2f(x - 1) + x2 như lúc trước?

• Dưới đây là một hàm đệ quy không kết thúc:

Điều gì xảy ra khi gọi:

- bad(1)?

- bad(2)?

- bad(3)?

Trang 5

Đảm bảo chương trình đệ quy kết thúc

Hai quy tắc viết chương trình đệ quy đúng:

1 Định nghĩa trường hợp cơ sở

− Đây là nơi đệ quy sẽ kết thúc

2 Lời gọi đệ quy phải có sự tiến triển

− Mỗi bước phải hướng dần về phía trường hợp cơ sở

Ngày đăng: 09/05/2021, 17:56

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm