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

13 30 0
  • Loading ...
1/13 trang

Thông tin tài liệu

Ngày đăng: 25/02/2019, 22:23

BÀI TẬP CHƯƠNG Bài 1: Nêu bước cài đặt chương trình sử dụng quy hoạch động Các bước cài đặt chương trình sử dụng quy hoạch động: - Giải tất toán sở, lưu lời giải vào bảng phương án - Dùng công thức truy hồi, phối hợp lời giải toán nhỏ lưu bảng phương án để tìm lời giải tốn lớn lưu chúng vào bảng phương án toán ban đầu tìm lời giải - Dựa vào bảng phương án, truy vết tìm nghiệm tối ưu Bài 2: Nêu khái niệm cách tiếp cận quy hoạch động So sánh đệ quy quy hoạch động Minh họa so sánh tính số fibonacci thứ hoạch số fibonacci thứ Bài 3: Xét tốn tìm dãy đơn điệu tăng dài nêu tốn đưa ví dụ minh họa: dãy đơn điệu có phần từ, phần tử phần tử sử dụng phương pháp quy hoạch động tạo tìm dãy đơn điệu tăng dài Bài 4: Xét tốn túi nêu tốn cho ví dụ minh họa sử dụng phương pháp qui hoạch động phân tích tốn nêu cơng thức truy hồi áp dụng phương pháp qui hoạch động toán phương án toán m = 11 Cho toán túi với trọng lượng túi m = 11 có n = mặt hàng là: W[1] = v[1] = W[2] = v[2] = W[3] = v[3] = W[4] = 10 v[4] = W[5] = v[5] = f (n,m ) i=0 j=0 10 11 0 0 0 0 0 0 3 3 3 5 5 5 5 8 8 9 9 9 12 12 12 0 0 0 Truy vết: Chọn mặt hàng f = 12 -> mặt hàng i = với v = Chọn tiếp để v có 12 – = Được mặt hàng i = với v = Chọn tiếp để v = – = Được mặt hàng i = với v = Vậy chọn mặt hàng i = 1, 2, GTLN 12 Bài 5: Xét toán dãy chung dài nêu toán cho VD minh họa: a = {4, 7, 1, ,4, 15, 15, 13} b = {1, 4, 13, 15, 4, 13} Dãy chung c = {1, 4, 15 ,13} BÀI TẬP CHƯƠNG Bài 1: Trình bày thuật tốn chia để trị, nêu bước, sơ đồ thuật toán, viết hàm thuật toán chia để trị đề qui Thuật toán chia để trị: Chia để trị phương pháp thiết kế thuật toán từ xuống với ý tưởng - Chia tốn thành tốn nhỏ có dạng giống ban đầu - Các toán nhỏ chia thành toán nhỏ Các bước Bước 1: Chia toán thành phần Bước 2: Giải phần độc lập Bước 3: Kết hợp lời giải phần Bước thành lời giải toán Sơ đồ Hàm thuật toán chia để trị đệ qui void chiadetri (x: baitoan) :giải pháp { if (nhỏ đơn giản) return (giải x thuật toán đơn giản) else { chia x thành toán x1 … xk for (i = 1; iright); } } Duyệt theo thứ tự sau (L R N) Postorder void PostOrder (node * t){ node * p ; p = t; if (p != NULL) { PostOrder (p->left); PostOrder (p->right); printf (“%d”, p->info); } } Bài 4: Trình bày ứng dụng nhị phân: Cây nhị phân biểu diễn biểu thức, tạo nhị phâm tìm kiếm BÀI TẬP CHƯƠNG Bài 1: Cho đồ thị G1, G2 Hãy biểu diễn đồ thị G1, G2 bằng: danh sách liền kề, ma trận liền kề, danh sách cạnh lưu vào nhớ theo dạng 10 Danh sách liền kề đồ thị G1 Đỉnh đầu Đỉnh cuối 2, 3, 1, 1, ,4 3, 1, Danh sách liền kề đồ thị G2 Đỉnh đầu Đỉnh cuối Ma trận liền kề G1 1 1 1 0 1 Ma trận liền kề G2 11 0 1 0 1 0 1 0 0 0 0 0 0 0 Lưu danh sách cạnh G1: Mảng 1,2 1,3 1,5 2,1 2,3 3,1 3,2 3,4 4,3 4,5 5, 5, Móc nối Bài 2: Cho đồ thị G Hãy biểu diễn đồ thị G bằng: ma trận liền kề, danh sách cạnh lưu vào nhớ theo dạng danh sách liền kề ma trận trọng số Ma trận trọng số: 0 ∞ 10 20 1 10 ∞ ∞ 20 ∞ 5 12 ∞ ∞ Ví dụ: Thuật tốn tìm đường dijktra Tập T a ba cba dcba edcba zedcba a (0, -) (0, -)* - b (∞, -) (1,a) (1,a)* - c (∞, -) (2,a) (2,a) (2,a)* - 13 d (∞, -) (∞, -) (6,b) (6,b) (6,b)* - e (∞, -) (∞, -) (∞, -) (8,d) (8,d) (8,d)* - z (∞, -) (∞, -) (∞, -) (∞, -) (11,e) (11,e) (11,e)* ... tổng S(n) = 12 + 32 + 52 + … + (2n-1 )2 Các bước cài đặt chương trình sử dụng quy hoạch động: Giải tất toán sở, lưu lời giải vào bảng phương án Dùng công thức truy hồi, phối hợp lời giải toán nhỏ... 2: Giải phần độc lập Bước 3: Kết hợp lời giải phần Bước thành lời giải toán Sơ đồ Hàm thuật toán chia để trị đệ qui void chiadetri (x: baitoan) :giải pháp { if (nhỏ đơn giản) return (giải x thuật. .. kích thước n /2: a, b, c, d, e, f, g, h; r = matrixpro(a, e, n /2) , matrixpro(b, g, n /2) ; s = matrixpro(a, f, n /2) , matrixpro(b, h, n /2) ; t = matrixpro(c, e, n /2) , matrixpro(d, h, n /2) ; } } độ
- Xem thêm -

Xem thêm: cấu trúc dữ liệu và giải thuật 2 , cấu trúc dữ liệu và giải thuật 2

Gợi ý tài liệu liên quan cho bạn