Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 giúp người học hiểu về Đệ qui và giải thuật đệ qui. Nội dung trình bày cụ thể gồm có: Khái niệm đệ qui, giải thuật đệ qui và chương trình đệ qui, các bài toán đệ qui căn bản,...
f(n) = f(n – 1) + f(n – 2) n > Điều kiện dừng: f(0) = f(1) = long Fibo(int n) { if (n == || n == 1) return 1; return Fibo(n–1) + Fibo(n–2); } Phân loại đệ qui Đệ qui hỗ tương Trong thân hàm có lời gọi hàm tới hàm ngược lại () { if () { … return ; } … (); … } () { if () { … return ; } … (); … } Phân loại đệ qui Đệ qui hỗ tương Tính số hạng thứ n dãy sau: x(0) = 1, y(0) = x(n) = x(n – 1) + y(n – 1) y(n) = 3*x(n – 1) + 2*y(n – 1) Điều kiện dừng: x(0) = 1, y(0) = long xn(int n) { if (n == 0) return 1; return xn(n-1) + yn(n-1); } long yn(int n) { if (n == 0) return 0; return 3*xn(n-1) + 2*yn(n-1); } Phân loại đệ qui Đệ qui phi tuyến Trong thân hàm có lời gọi hàm lại đặt bên thân vịng lặp () { if () { … return ; } … Vòng lặp { … (); } … } Phân loại đệ qui Đệ qui phi tuyến Tính số hạng thứ n dãy: x(0) = x(n) = n2x(0) + (n-1)2x(1) + … + 22x(n – 2) + 12x(n – 1) Điều kiện dừng: x(0) = long xn(int n) { if (n == 0) return 1; long s = 0; for (int i=1; i