Professional Documents
Culture Documents
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ố:
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) = 𝑑;