1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập Phân tích thiết kế giải thuật

7 3K 28

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 150,04 KB

Nội dung

BÀI TẬP PTTKGT Giải các bài trên bằng giấy và viết tay Chương 1: Bài 1: Cho chương trình bài toán tháp Hà Nội.. Hãy phân tích độ phức tạp Cn của giải thuật sau đây với n là kích thước

Trang 1

BÀI TẬP PTTKGT (Giải các bài trên bằng giấy và viết tay)

Chương 1:

Bài 1:

Cho chương trình bài toán tháp Hà Nội

a Tình độ phức tạp của bài toán tháp Hà Nội

b Khử đệ quy đuôi

c Khử đệ quy lời gọi hàm đệ quy còn lại

Bài 2:

Cho số Fibonaci được định nghĩa như sau:

Fn = Fn-1 + Fn-2

a Hãy viết hàm đệ quy để tính Fn

b Dùng phương pháp tổng quát để khử đệ quy

Bài 3:

Giả sử thời gian thực thi modun A là hằng M Hãy phân tích độ phức tạp C(n) của giải thuật sau đây với n là kích thước của dữ liêu nhập

a

For i:=1 to n do For j:=1 to I do

For k:=1 to j do

b

for (i = 0; i < n-2; i++) { for (j = 0; j < n; j=j*2) {

for (k = 1; k < 5000; k=k*5) {

} } for (j = 0; j < 1000*n; j=j+1) {

} for (j = 0; j < n/5; j=j+5) {

} }

Trang 2

Bài 4:

Giải công thức truy hồi sau:

a CN = 4CN/2 + N; với N ≥ 2, C1 =1

b CN = 4CN-1 + 2; với N ≥ 2, C1 =1

Bài 5:

Cho thủ tục tính giá trị lớn nhất và nhỏ nhất như sau:

procedure MAXMIN(A, n, max, min)

/* Set max to the maximum and min to the minimum of A(1:n) */

begin

integer i, n;

max := A[1]; min:= A[1];

for i:= 2 to n do

if A[i] > max then max := A[i]

else if A[i] < min then min := A[i];

end

Tính độ phức tạp C(n) trong trường hợp:

a Xấu nhất

b Tốt nhất

c Trung bình

Chương 2:

Bài 1:

Cho dãy số :

66 33 40 22 55 88 60 11 80

a Hãy chạy tay giải thuật insertion sort, selection sort, bubble sort

b Hãy cho biết trường hợp tốt nhất và xấu nhất của các giải thuật trên

Bài 2:

Cho danh sách các số nguyên: 28, 3, 93, 10, 54, 65, 30, 90, 10, 69, 8, 22, 31, 5, 96, 40, 85,

9, 39, 13, 8, 77, 10

a Hãy chạy bằng tay giải thuật QuickSort dùng phần tử trái nhất làm phần tử cầm canh

b Hãy chạy tay giải thuật merge sort

c Nếu mỗi số là 1 record, mỗi block chỉ chứa 1 record, bộ nhớ của buffer chỉ chứa tối đa 3 page frames Trong quá trình merge, 2 page frames dùng để nhập

dữ liệu, còn 1 page frame dùng để xuất dữ liệu Hãy chạy bằng tay, dùng giải thật external sort để sắp xếp file dữ liệu trên

Trang 3

Bài 3:

Hãy cho biết trường hợp xấu nhất, tốt nhất và độ phức tạp tương ứng của các giải thuật:

a insertion sort

b selection sort

c bubble sort

d quick sort

e radix sort

f merge sort

g external sort

h tìm kiếm nhị phân

Bài 4:

Giả sử 1 dãy các số được lưu trữ bằng danh sách liên kết Các anh chị hãy cho biết giải thuật sắp xếp nào là phù hợp nhất để sắp xếp dữ liệu? giải thích?

Chương 3:

Bài 1:

Chạy bằng tay giải thuật heap sort cho các khóa:

66 33 40 22 55 88 60 11 80

Phát biểu độ phức tạp của giải thuật heap sort

Bài 2 :

Vẽ cây tìm kiếm nhị phân sau khi thêm các khóa sau từ cây rỗng ban đầu: 5, 10, 30, 22, 15,

20, 31 Sau đó xóa khóa 10 Trong trường hợp xấu nhất, cần bao nhiêu phép so sánh để tìm kiếm trong cây nhị phân tìm kiếm có N khóa Giải thích

Bài 3:

Cho các trị khóa sau lần lượt đưa vào bảng băm : C,O,M,P,U,T,E,R,S,C,I,E,N,C,E

Giả sử bảng băm có kích thước 13 và hàm băm là h(k)= k mod 13

a Hãy cho biết nên sử dụng phương pháp giải quyết đụng độ là đầu dò tuyến tính hay xâu chuỗi riêng Sau đó, vẽ quá trình đưa các khóa vào bảng băm

b Nếu kích thước bảng băm là 19 và hàm băm là h(k) = k mod 19 và sử dụng phương pháp đầu dò tuyến tính Hãy vẽ quá trình đưa các khóa vào bảng băm

Chương 4

Bài 1:

Cho đồ thị biểu diễn bằng danh sách liên kết như sau:

Trang 4

a Hãy vẽ đồ thị

b Biểu diễn đồ thị bằng ma trận

c Chạy bằng tay trạng thái của stack trong giải thuật depth first search (bắt đầu từ đỉnh a) Sau đó, chỉ ra thứ tự duyệt các đỉnh

d Phát biểu độ phức tạp của giải thuật depth first search

e Chạy bằng tay trạng thái của stack trong giải thuật breadth first search (bắt đầu

từ đỉnh a) Sau đó, chỉ ra thứ tự duyệt các đỉnh

Bài 2:

a Hãy chỉnh sửa giải thuật dfs để kiểm tra đồ thị G có vòng không ?

b Hãy chỉnh sửa giải thuật dfs để kiểm tra đồ thị G có bao nhiêu thành phần liên thông ?

Bài 3:

Cho đồ thị có trọng lượng Hãy dùng giải thuật Prim để tìm cây phủ tối tiểu Sau đó hãy cho biết độ phức tạp của giải thuật Prim trong trường hợp hàng đợi Q ta sử dụng cấu trúc

dữ liệu:

a heap

b array

c

a

d b a

f

e

c

b

a

Trang 5

Bài 4:

Cho đồ thị có hướng sau:

a Hãy biểu diễn đồ thị trên bằng danh sách liên kết

b Dùng phương pháp 1 để tìm 2 dãy topological sort khác nhau

c Dùng phương pháp 2 để tìm 2 dãy topological sort khác nhau

Bài 5:

Cho ma trận biểu diễn đồ thị có hướng như sau:

0 0 0 1

1 0 1 1

1 0 0 1

0 0 1 0

a

g

f

b

c e

d

d

a

w(d,c) = 4 w(d,e) = 4 w(d,a) = 3 w(a,c) = 3 w(a,b) = 3 w(a,f) = 3 w(a,e) = 3 w(b,f) = 2 w(b,c) = 2 w(f,e) = 1 w(c,e) = 2

Trang 6

a Biểu diễn đồ thị trên bằng danh sách liên kết

b Dùng giải thuật Warshall để tìm bao đóng truyền

Bài 6:

Cho đồ thị có trọng lượng được biểu diễn như sau:

7 5 0 0

7 0 0 2

0 3 0 0

4 0 1 0

Hãy dùng giải thuật Floyd’s để tìm đường đi ngắn nhất giữa các đỉnh trong đồ thị có hướng

và có trọng lượng trên

Bài 7:

a Chỉnh sửa giải thuật Floyd’s để có thể lưu vết được đường đi ngắn nhất giữa các đỉnh

b Phát triển thủ tục path để in tất cả các lối đi ngắn nhất từ một đỉnh đến các đỉnh

còn lại

Bài 8:

Cho đồ thị có trọng lượng Hãy dùng giải thuật Dijkstra để tìm cây phủ tối tiểu Sau đó hãy cho biết độ phức tạp của giải thuật Dijkstra trong trường hợp hàng đợi Q ta sử dụng cấu trúc dữ liệu:

a heap

b array

a

g

f

b

c e

d

5

2

1

3 2

4

6

5

2

3

8

1 1

5

Trang 7

Chương 5

Bài 1:

Chỉnh sửa giải thuật quy hoạch động bài toán knapsack 0-1, để giải quyết bài toán knapsack trong đó có mảng a[1 n] chứa số lượng các loại hàng

Bài 2:

Cho công thức truy hồi của hàm C(m,n) ( n ≥1 và 0≤m≤n) như sau:

C(m,n) = C(m,n-1) + C(m-1,n-1) nếu 0<m<n

a Viết hàm đệ quy để tính C(m,n)

b Nêu lý do tại sao không nên xây dựng hàm đệ quy để tính C(m,n) Dùng quy hoạch động để tính C(m,n) Sau đó cho biết giá trị C(1,5) và C(2,5)

Bài 3:

Cho một danh sách ghi lại chỉ số chứng khoán VNIndex từ khi khai trương đến nay Dựa vào danh sách này hãy cho biết, giai đoạn nào chỉ số VNIndex ổn định kéo dài nhất Giai đoạn ổn định là giai đoạn mà chỉ số VNIndex cao nhất so với chỉ số VNIndex thấp nhất trong giai đoạn này không vượt quá 3%

Bài 4:

Cho các giải thuật sau:

Thap Ha Noi, Prim,Dijkstra, : quicksort, mergesort, exchange radix sort, externel sort, Floy, Warshall, heap sort

Anh/chị hãy cho biết giải thuật nào thuộc loại: chia để trị, biến thể để trị, quy hoạch động, tham lam, quay lui (backtracking)

Ngày đăng: 18/09/2014, 21:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w