Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 2: Thuật toán đệ qui cung cấp cho người đọc các kiến thức: Khái niệm đệ qui, thuật toán đệ qui, một số ví dụ minh họa, phân tích thuật toán đệ quy, đệ qui có nhớ, chứng minh tính đúng đắn của thuật toán đệ qui. Mời các bạn cùng tham khảo.
Chương Thuật toán đệ qui Nội dung 2.1 Khái niệm đệ qui 2.2 Thuật toán đệ qui 2.3 Một số ví dụ minh hoạ 2.4 Phân tích thuật tốn đệ qui 2.5 Đệ qui có nhớ 2.6 Chứng minh tính đắn thuật tốn đệ qui CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 2.1 Khái niệm đệ qui • 2.1.1 Khái niệm đệ qui • 2.1.2 Thuật toán đệ qui Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội Khái niệm đệ qui • Trong thực tế ta thường gặp đối tượng bao gồm định nghĩa dạng Ta nói đối tượng xác định cách đệ qui • Ví dụ: – Điểm qn số – Fractal – Các hàm định nghĩa đệ qui – Tập hợp định nghĩa đệ qui – Định nghĩa đệ qui – CuuDuongThanCong.com Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân CuuDuongThanCong.com Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội Đệ qui: Điểm quân CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 10 Đệ qui: Điểm quân Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 11 Đệ qui: Điểm quân CuuDuongThanCong.com Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 12 Đệ qui: Điểm quân Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 13 Đệ qui: Điểm quân CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 14 Đệ qui: Điểm quân Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 15 Fractals fractals ví dụ hình ảnh xây dựng cách đệ qui (đối tượng lặp lại cách đệ qui) CuuDuongThanCong.com Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 16 Hàm đệ qui (Recursive Functions) Các hàm đệ qui xác định phụ thuộc vào biến nguyên không âm n theo sơ đồ sau: Bước sở (Basic Step): Xác định giá trị hàm n=0: f(0) Bước đệ qui (Recursive Step): Cho giá trị f(k), k ≤ n, đưa qui tắc tính giá trị f(n+1) Ví dụ 1: f(0) = 3, n=0 f(n+1) = 2f(n) + 3, n>0 Khi ta có: f(1) = × + = 9, f(2) = × + = 21, Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 17 Hàm đệ qui (Recursive Functions) Ví dụ 2: Định nghĩa đệ qui n! : f(0) = f(n+1) = f(n) × (n+1) Để tính giá trị hàm đệ qui ta thay dần theo định nghĩa đệ qui để thu biểu thức với đối số ngày nhỏ tận điều kiện đầu Chẳng hạn: đệ qui 5! = · 4! = · · 3! = · · · 2! = · · · · 1! = · · · · · 0! = · · · · · = 120 điều kiện đầu CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ môn KHMT, ĐHBK Hà Nội 18 Hàm đệ qui (Recursive Functions) n Ví dụ 3: Định nghĩa đệ qui tổng sn ak k 1 s1 = a1 sn = sn-1 + an Ví dụ 4: Dãy số Fibonacci f(0) = 0, f(1) = 1, f(n) = f(n-1) + f(n-2) với n > Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 19 Fibonacci Numbers Sự phát triển bày thỏ Số lượng cặp thỏ CuuDuongThanCong.com Cấu trúc liệu thuật toán - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 20 Phát biểu tốn • Như toán xếp Hậu dẫn toán liệt kê phần tử tập: D={(a1, a2, , an)Nn: ≠ aj |ai – aj| ≠ |i – j|, i ≠ j } Cấu trúc liệu thuật tốn - NGUYỄN ĐỨC NGHĨA, Bộ mơn KHMT, ĐHBK Hà Nội 163 Hàm nhận biết ứng cử viên int UCVh(int j, int k) { // UCVh nhận giá trị // Sk int i; for (i=1; i