Cơ Bản Về Đệ Quy Tiếng Anh Là Gì Và Khi Nào Tôi Nên Sử Dụng Nó?

Lớp 1-2-3

Lớp 1

Lớp 2

Vở bài tập

Lớp 3

Vở bài tập

Đề kiểm tra

Lớp 4

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Lớp 5

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Lớp 6

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 7

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 8

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 9

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 10

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 11

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 12

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

IT

Ngữ pháp Tiếng Anh

Lập trình Java

Phát triển web

Lập trình C, C++, Python

Cơ sở dữ liệu

*

Cấu trúc dữ liệu và giải thuậtMột số khái niệm về Giải thuật Cấu trúc dữ liệu mảng (Array)Danh sách liên kết – Linked ListsNgăn xếp & Hàng đợiMột số Giải thuật tìm kiếmMột số Giải thuật sắp xếpCấu trúc dữ liệu đồ thị (Graph)Cấu trúc dữ liệu câyĐệ qui (Recursion)Tài liệu tham khảo
Khái niệm cơ bản về đệ qui (Recursion)
Trang trước
Trang sau

Đệ qui (Recursion) là gì ?

Một số ngôn ngữ lập trình cho phép việc một module hoặc một hàm được gọi tới chính nó. Kỹ thuật này được gọi là Đệ qui (Recursion). Trong đệ qui, một hàm a có thể: gọi trực tiếp chính hàm a này hoặc gọi một hàm b mà trả về lời gọi tới hàm a ban đầu. Hàm a được gọi là hàm đệ qui.

Bạn đang xem: đệ quy tiếng anh là gì

Ví dụ: một hàm gọi chính nó

hàm int (giá trị int) {if (giá trị Ví dụ: một hàm mà gọi tới hàm khác mà trả về lời gọi tới hàm ban đầu

hàm int (giá trị int) {if (giá trị

Đặc điểm của hàm đệ qui

Một hàm đệ qui có thể tiếp tục diễn ra vô số lần giống như một vòng lặp vô hạn. Để tránh điều này, bạn phải ghi nhớ hai thuộc tính sau của hàm đệ qui:

Điều kiện cơ bản: phải có ít nhất một điều kiện để khi mà gặp điều kiện này thì việc gọi chính hàm đó (gọi đệ qui) sẽ dừng lại.

Tiệm cận: mỗi khi hàm đệ qui được gọi thì nó càng tiệm cận tới điều kiện cơ bản.

Sự triển khai hàm đệ qui

Nhiều ngôn ngữ lập trình triển khai sự đệ qui theo cách thức của các ngăn xếp (stack). Nói chung, mỗi khi một hàm (hàm gọi – caller) gọi hàm khác (hàm được gọi – callee) hoặc gọi chính nó (callee), thì hàm caller truyền điều khiển thực thi tới callee. Tiến trình truyền này cũng có thể bao gồm một số dữ liệu từ caller tới callee.

So sánh đệ qui và vòng lặp

Ai đó có thể nói rằng tại sao lại sử dụng đệ qui trong khi sử dụng vòng lặp cũng có thể làm được các tác vụ tương tự. Lý do đầu tiên là đệ qui làm cho chương trình dễ đọc hơn và với các hệ thống CPU cải tiến ngày nay thì đệ qui là hiệu quả hơn rất nhiều khi so với các vòng lặp.

Xem thêm: P2P Là Gì? Mạng Peer To Peer Mạng Ngang Hàng (Peer To Peer

Độ phức tạp thời gian (Time complexity) của hàm đệ qui

Với vòng lặp, chúng ta lấy số vòng lặp để tính độ phức tạp thời gian. Tương tự với đệ qui, giả sử mọi thứ là hằng số, chúng ta tính thời gian một lời gọi đệ qui được tạo ra. Một lời gọi được tạo ra tới một hàm sẽ là Ο(1), Do đó với n là thời gian một lời gọi đệ qui được tạo ra thì độ phức tạp thời gian hàm đệ qui sẽ là Ο(n).

Độ phức tạp bộ nhớ (Space complexity) của hàm đệ qui

Độ phức tạp bộ nhớ được ước lượng dựa vào lượng bộ nhớ cần thêm cho một module được thực thi. Với vòng lặp, trình biên dịch hầu như không cần thêm bộ nhớ. Trình biên dịch sẽ tự cập nhật giá trị của biến được sử dụng ngay trong vòng lặp. Nhưng với đệ qui, hệ thống cần lưu giữ các bản ghi động mỗi khi một lời gọi đệ qui được tạo. Do đó có thể nói rằng, độ phức tạp bộ nhớ của hàm đệ qui là cao hơn so với vòng lặp.

Đã có app balkanpoliticalclub.net trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Xem thêm: 【 Operation Staff Là Gì Và Viết Tắt Của Chữ Gì, Nhân Viên Hiện Trường / Operation Staff

*

*

Follow fanpage của team https://www.facebook.com/balkanpoliticalclub.netteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.balkanpoliticalclub.net để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.
Chuyên mục: Review tổng hợp

Author: admin.ta

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *