1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thi giữa kỳ Giải Thuật Nâng Cao Bách Khoa

8 383 4

Đ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 8
Dung lượng 270,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đây là một đề thi giữa kỳ mẫu của môn giải thuật nâng cao của sinh viên cao học. trong tài liệu này có chi tiết các bước giải cũng như phân tích các yêu cầu của đề bài đưa ra. Thí sinh được phép mang tài liệu và Đề thi có tính chất tham khảo

Trang 1

BÀI TẬP THI GIỮA KỲ

MÔN: GIẢI THUẬT NÂNG CAO

Câu 1 tính độ phức tạp của các giải thuật sau và giải thích

a

1.int fun1(int n){

2 int i=s=0

3 while (s<n){

4 i++;

5 s+=I;

6 }

7 return s;

8.}

b

1.int fun2(int n){

2 if(n<=4){

3 return 4;

4 }else{

5 int x=0;

6 for(int i=1;i<n;i++){

7 if(i%2==0)

8 x+=fun2(i);

9 }

10 return x;

11 } 12.}

Câu a: phân tích

Gọi là độ phức tạp của giải thuật, ta có:

Ở vòng lặp thứ 1 ta có : s=1;

Ở vòng lặp thứ 2 ta có : s=1+2;

Ở vòng lặp thứ 3 ta có : s=1+2+3;

Ở vòng lặp thứ 4 ta có : s=1+2+3+4;

Ở vòng lặp thứ k ta có : ;

Vòng lặp chỉ dừng lại khi

Độ phức tạp của giải thuật:

2 phép gán i=s=0;

1 vòng lặp while với lần lặp

Trong vòng lặp while có 2 phép gán (i++ và s+=i)

Vậy ta có :

Câu b: phân tích

Gọi là độ phức tạp của giải thuật, ta có:

1 phép so sánh n<=4;

1 phép gán x=0;

Vòng for từ 1 cho đến n => lặp n-1 lần

Bên trong vòng lặp for có (n-1) lần so sánh (i%2==0) và gọi đệ quy lần

với i<n và i là số chẵn với Vậy với n>4

Ta có

Trang 2

15

15

Giả sử n chẵn ta có :

với n-k chẵn

Vòng lặp chỉ dừng khi

Câu 2 Cho danh sách L=[13,15,18,16,4,23,5,6,7,9,8,10] Hãy xây dựng cây đỏ đen nhị phân bằng cách thêm từng phần tử trong danh sách L (từ trái sang phải) Cho biết kết quả sau khi xóa các nút 16,18 và 10 của cây thu được

Xây dựng cay đỏ đen từ L=[13,15,18,16,4,23,5,6,7,9,8,10]

Thêm 13:

Thêm 15:

Thêm 18 :

13

Xoay

18 13

15

Trang 3

16

15

16

Xoay

15

16 4

15

16

15 5

16

18

15 13

16

18

5

Xoay 2 lần

Đổi màu

15 5

16

18

6

15 5

16

18

6

15

Xoay rồi đổi màu

15 5

16

18

Thêm 16:

Thêm 4:

Thêm 23:

Thêm 5

Thêm 6:

Thêm 7 :

Trang 4

15 7

16

18

9 6

4 Xoay

5

16

18

6 13 9

15 5

16

18

6 13

9

Xoay và đổi màu

15 7

16 18 5

23

13 9

6 4

15 7

16 18 5

23

13 9

6 4

9 Thêm 9:

Thêm 8:

Trang 5

15 7

16 18 5

23

9 8

6 4

13 Xoay và đổi màu

15 7

16 18 5

23

9 8

6 4

13 10

15 7

16 18 5

23

9 8

6

4

13 10

Đổi màu

15 7

18 5

23

9 8

6 4

13 10

Thêm 10:

Xóa nút 16: cây đỏ đen trên thu được là

Xóa nút 10: cây đỏ đen trên thu được là

Trang 6

15 7

18 5

23

9 8

6 4

13

15 7

23

5

9 8

6 4

13 Xóa nút 18: cây đỏ đen trên thu được là

Câu 3 Hãy viết giải thuật xác định liệu đồ thị vô hướng có phân đôi hay không? Cho biết độ phức tạp của giải thuật đề xuất.

Đồ thị phân đôi là đồ thị có có tập đỉnh chia đồ thị thành 2 phần có liên kết với nhau Bản than bên trong mỗi phần không có mối liên kết giữa các đỉnh

Ý tưởng : Dùng giải thuật BFS để tô màu cho các đỉnh đã đi qua rồi Ban đầu khởi tạo tất cả các đỉnh có color=white và tập các đỉnh partition đã phân đôi ở một bên rồi (mỗi đỉnh có 1 partition, khi đỉnh v và u là

Trang 7

2 đỉnh không có đường nối và đỉnh đang xét là đỉnh v thì partion[v]+=partion[u]) Giải thuật sẽ lấy từng đỉnh của G để so sánh, nếu có 1 đỉnh con nào đang xét (có màu gray) nhưng đã nằm trong partition rồi thì tức là đồ thị không phân đôi, ngược lại sau khi xét tất các đỉnh mà không vi phạm thì là đồ thị phân đôi

Boolean KiemTraDoThiPhanDoi (G){

For (đỉnh u trong đồ thị G){

color[u]= WHITE;

partition[u]=0;

}

Color[s]=GRAY;

partition[s]=0;

Q.EndQuence(s)

While (Q not emty){

Q.QueueFront(u) for( đỉnh con v của u){

if(partition[v] nằm trong partition[u]) then

return false;

else if(color[v]=WHITE) then

color[v]=GRAY;

partition[v]= partition[u]

Q.EndQuence(v)

} Q.DeQuence(u);

color[u]=BLACK;

}

Return true;

}

Đánh giá giải thuật:

Gọi là độ phức tạp của giải thuật

Ta có n là số đỉnh của đồ thị G

Hành động DeQuence, EndQuence, QueueFront có độ phức tạp là ứng với V đỉnh

Hành động kiểm tra màu và nằm trong partition có độ phức tạp là ứng với E cạnh

Trang 8

Vậy

Ngày đăng: 06/06/2016, 23:26

HÌNH ẢNH LIÊN QUAN

Đồ thị phân đôi là đồ thị có có tập đỉnh chia đồ thị thành 2 phần có liên kết với nhau - Thi giữa kỳ  Giải Thuật Nâng Cao Bách Khoa
th ị phân đôi là đồ thị có có tập đỉnh chia đồ thị thành 2 phần có liên kết với nhau (Trang 6)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w