Cấu trúc dữ liệu và giải thuật-Chương 2: Giải thuật đệ quy pot

52 785 8
Cấu trúc dữ liệu và giải thuật-Chương 2: Giải thuật đệ quy pot

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cấu trúc liệu giải thuật Người thực hiện: Email: ĐT: Đỗ Tuấn Anh anhdt@it-hut.edu.vn 0989095167 Nội dung Chương – Thiết kế phân tích (5 tiết) Chương – Giải thuật đệ quy (10 tiết) Chương – Mảng danh sách (5 tiết) Chương – Ngăn xếp hàng đợi (10 tiết) Chương – Cấu trúc (10 tiết) Chương – Tìm kiếm (5 tiết) Chương – Sắp xếp (10 tiết) Chương – Đồ thị (5 tiết) Chương – Giải thuật đệ quy Khái niệm Thiết kế giải thuật đệ quy Hiệu lực đệ quy Đệ quy quy nạp toán học Đệ quy quay lui Khái niệm Là kỹ thuật giải tốn quan trọng đó: Phân tích đối tượng thành thành phần nhỏ mang tính chất đối tượng Ví dụ: Định nghĩa số tự nhiên: số tự nhiên x số tự nhiên x-1 số tự nhiên Ví dụ - Tính giai thừa Hàm tính giai thừa cho số nguyên: n! = n * ( n - ) * … * Định nghĩa đệ quy: if n = // điều kiện dừng n * ( n - 1)! if n > // bước đệ quy n! = Tính giai thừa Định nghĩa đệ quy cách xác cách tính giai thừa 4! = = = = = = = = = * 3! * ( * 2! ) * ( * ( * 1!) ) * ( * ( * ( * 0! ) ) ) 4*(3*(2*(1*1))) 4*(3*(2*1)) 4*(3*2) 4*6 24 // Bước đệ quy (n = 4) // Bước đệ quy (n = 3) // Bước đệ quy (n = 2) // Bước đệ quy (n = 1) // Điều kiện dừng ( n = 0) Khái niệm (tiếp) Giải thuật đệ quy: T thực T’ có dạng giống T Giải thuật đệ quy phải thỏa mãn điều kiện: Phải có điểm dừng: trường hợp sở (suy biến) nhỏ nhất, thực không cần đệ quy Phải làm cho kích thước tốn thu nhỏ hơn: làm cho tốn giảm dần đến trường hợp sở Thủ tục đệ quy: Có lời gọi đến (đệ quy trực tiếp) chứa lời gọi đến thủ tục khác thủ tục chứa lời gọi đến (đệ quy gián tiếp) Sau lần gọi, kích thước tốn thu nhỏ Phải kiểm tra điểm dừng Giải thuật đệ quy – ví dụ Tìm file thư mục máy tính Tra từ từ điển Anh-Anh Thiết kế giải thuật đệ quy bước: Thơng số hóa tốn Tìm điều kiện dừng Phân rã tốn Ví dụ tốn: Tính N! Bước 1: Thơng số hóa tốn Tìm thơng số biểu thị kích thước tốn Quyết định độ phức tạp tốn Ví dụ: Tính N! N hàm tính giai thừa N Đánh giá giải thuật Tháp Hà nội Gọi f(n) số lần chuyển đĩa cần thiết để chuyển n đĩa từ cột sang cột f(1) = 1; f(n) = * f(n – 1) + 1, if n > Dự đoán: f(n) = * f(n – 1) + = 22 * f(n – 2) + + = … = 2n-1 * f(1) + … + + = 2n-1 + 2n-2 +…+2+1 = 2n – Chứng minh? Chứng minh quy nạp f(1) = 21 – = Giả sử với n = k f(k) = 2k – f(k+1) = 2*f(k) +1 = 2*(2k – 1) + = 2k+1 -1 => Công thức Các nhà sư phải chuyển 64 đĩa Giả sử lần chuyển 11 giây, nhà sư phải * 1011 năm = 25 lần tuổi vũ trụ Khi chuyển xong chồng đĩa đến ngày tận thế! Đệ quy quay lui (back tracking) Bài toán hậu: “Hãy xếp hậu bàn cờ 8x8 cho khơng có hậu ăn hậu nào” Đệ quy quay lui Phương pháp “thử bước” Thử dự đoán Nếu dự đoán sai, quay trở lại thử dự đoán khác => quay lui Dễ dang thể phương pháp quay lui đệ quy Các biến trạng thái hàm đệ quy lưu trữ Stack Quay lui lại trạng thái ban đầu Quay trở lại hàm trước (hàm gọi hàm tại) Bài tốn hậu Giải thuật 1: Thử tất trường hợp ứng với vị trí hậu Số phép thử = 64*63*…*58*57 = 178,462,987,637,760 Bài toán hậu Nhận xét: Mỗi cột phải có hậu Con hậu nằm cột … Con hậu j nằm cột j … Con hậu nằm cột Các hậu phải không hàng Các hậu phải không nằm đường chéo Bài toán hậu Bài toán: Con hậu thứ j nằm cột j [1/Y1, 2/Y2, 3/Y3, 4/Y4, 5/Y5, 6/Y6, 7/Y7, 8/Y8] Lựa chọn hàng cho hậu để hậu không ăn Giải thuật: Thử vị trí hàng hậu (1-8) Với vị trí hậu Thử vị trí hàng hậu Với vị trí hậu • Thử vị trí hàng hậu Giải thuật Thử vị trí hàng function Try (column) { for (row = 1; row

Ngày đăng: 28/06/2014, 23:20

Từ khóa liên quan

Mục lục

  • Cấu trúc dữ liệu và giải thuật

  • Nội dung

  • Chương 2 – Giải thuật đệ quy

  • 1. Khái niệm

  • Ví dụ 1 - Tính giai thừa

  • Tính giai thừa

  • 1. Khái niệm (tiếp)

  • Giải thuật đệ quy – ví dụ

  • 2. Thiết kế giải thuật đệ quy

  • Bước 1: Thông số hóa bài toán

  • Bước 2: Tìm điều kiện dừng

  • Bước 3: Phân rã bài toán

  • Chương trình tính giai thừa

  • Quan điểm N-máy

  • Điều kiện đệ quy

  • Dãy số Fibonacci

  • Dãy số Fibonacci – Thủ tục đệ quy

  • Cơ chế thực hiện

  • Cơ chế thực hiện

  • Cơ chế thực hiện

Tài liệu cùng người dùng

Tài liệu liên quan