You are on page 1of 3

Họ và tên: MSSV: Ngày:

Phân Tích Độ Phức Tạp Thuật Toán


Question 1. Điền các hàm sau vào đồ thị tương ứng trong hình vẽ bên dưới: 𝒏, 𝒍𝒈𝒏, 𝒏𝒍𝒈𝒏, 𝒏𝟐 , 𝒏𝟑

Question 2. Hãy điền vào bảng sau đây các giá trị thích hợp tương ứng với hàm 𝒇(𝒏). Giả sử rằng
mỗi lệnh máy tính xử lý hao tổn 1 nano giây (𝟏𝟎#𝟗 giây): (5 phút)
f(n)
n 𝑙𝑔𝑛 𝑛 𝑛𝑙𝑔𝑛 𝑛! 𝑛" 2# 𝑛!

8
2048
8192
32768
Question 3. Phân tích và xác định Big-O của các thuật toán sau. Biết:
a. 1 + 2+. . . +𝑛 = 𝑛(𝑛 + 1)/2
b. 1% + 2% + ⋯ + 𝑛% = 𝑛(𝑛 + 1)(2𝑛 + 1)/6
c. 1 + 𝑎 + 𝑎% + 𝑎& + ⋯ + 𝑎' = (𝑎'() − 1)/(𝑎 − 1)
ALGORITHMS Secret_2(𝐴[0. . 𝑛 − 1])
ALGORITHMS Secret_1(𝐴[0. . 𝑛 − 1], 𝑘𝑒𝑦)
1. for 𝑖 ← 0 to 𝑛 − 2 do
1. for 𝑖 = 0 to 𝑛 − 1 do
2. for 𝑗 ← 𝑖 + 1 to 𝑛 − 1 do
2. if 𝐴[𝑖] = 𝑘𝑒𝑦 return true
3. if 𝐴[𝑖] = 𝐴[𝑗] return false
3. return false
4. return true
4. End Secret_1
5. End Secret_2

Question 4. Hãy kể tên một số thao tác căn bản phổ biến trong một thuật toán?
Question 5. Cho biết tên của các ký pháp độ phức tạp tương ứng với từng đồ thị bên dưới:
Question 6. Thuật toán tìm kiếm nhị phân (binary search) để tìm kiếm một khoá key trong một
mảng có thứ tự có thể được viết bằng hai kỹ thuật: đệ qui và lặp như sau:

Phân tích và xác định ký pháp Big-O của hai thuật toán nêu trên.

Question 7. Đúng hay sai? Nếu đúng thì chứng minh, sai thì nêu một phản ví dụ?
$ $
1. ! 𝑛! − 3𝑛 ∈ 𝑂(𝑛! )? 2. 2#%$ ∈ O(2# )? 3. 2!# ∈ O(2# )? 4. ! 𝑛! − 3𝑛 ∈ 𝛩(𝑛! )?
$
5. 𝑛! − 3𝑛 ∈ Ω(𝑛! )? 6. If 𝑓(𝑛) = 𝑂(𝑔(𝑛)) và 𝑔(𝑛) = 𝑂(𝑓(𝑛)) then 𝑓(𝑛) = 𝑔(𝑛)?
!

Question 8. Hãy nêu một ví dụ về các quy tắc phân tích độ phức tạp tính toán của thuật toán:
a. Qui tắc bỏ hằng số:

b. Qui tắc cộng:

c. Qui tắc lấy max:


Question 9. Sử dụng kết quả của giới hạn dưới đây (lim):
0 => 𝑓(𝑛) 𝑐ó 𝑡ố𝑐 độ 𝑡ă𝑛𝑔 𝑐ℎậ𝑚 ℎơ𝑛 𝑔(𝑛) (1)
𝑓(𝑛)
lim = :𝑐 => 𝑓(𝑛) 𝑐ó 𝑡ố𝑐 độ 𝑡ă𝑛𝑔 𝑏ằ𝑛𝑔 𝑔(𝑛) (2)
'→+ 𝑔(𝑛)
∞ => 𝑓(𝑛) 𝑐ó 𝑡ố𝑐 độ 𝑡ă𝑛𝑔 𝑛ℎ𝑎𝑛ℎ ℎơ𝑛 𝑔(𝑛) (3)

Hãy kết luận, Big-O, Theta, hay Big-Omega tương ứng với từng trường hợp (1), (2), và (3).
Question 10. ĐÚNG/SAI hoặc điền vào chỗ trống:
a. 𝛺(𝑔(𝑛)) tập hợp tất cả các hàm có bậc nhỏ hơn hay bằng bậc của 𝑔(𝑛).
b. 𝛩(𝑔(𝑛)) tập hợp tất cả các hàm có bậc bằng bậc của 𝑔(𝑛).
c. 𝑂(𝑔(𝑛)) tập hợp tất cả các hàm có bậc lớn hơn hay bằng bậc của 𝑔(𝑛).
𝑓(𝑛) = 𝑂(𝑔(𝑛))
d. 𝑓(𝑛) = QA𝑔(𝑛)Bó C 𝑓(𝑛) = Ω(𝑔(𝑛))
e. Thuật toán máy tính thường được viết dưới hai dạng là thuật toán ............................... và thuật toán
..................................... Khi phân tích thuật toán ......................................... , người ta thường tính tổng
số thao tác căn bản bên trong phạm vi của ................................ Khi phân tích thuật toán đệ qui, người
ta thường xây dựng và giải ...........................
Question 11. Giải các hệ thức hồi quy (recurrence):
1. CN = CN-1 + N. N ³ 2, C1 = 1;

2. CN = CN/2 + 1. N ³ 2, N = 2^k, C1 = 0;

3. CN = 2CN/2 + 1. N ³ 2, N = 2^k, C1 = 0;
4. CN = 2CN/2 + N. N ³ 2, N = 2^k, C1 = 0;
5. 𝐶(𝑁) = 𝑐 + 𝐶(𝑁 − 1). 𝑁 > 1, 𝐶(1) = 𝑑;

You might also like