You are on page 1of 3

BÀI TẬP 2 – ĐẾM SỐ PHÉP GÁN VÀ SO SÁNH CỦA HAI GIẢI

THUẬT

Họ và tên: Võ Chánh Hưng


MSSV: 19120523
Đề bài:
Đếm số phép gán và so sánh của hai giải thuật sau:
1.
s ← 0, i ← 0 (1)
while i < n do (2)
j ← i (3)
while j ≤ n – i do (4)
s ← s + i*j (5)
j ← j + 1 (6)
end (7)
i ←i + 1 (8)
end (9)
a) Số phép gán trên từng dòng:
(1) 2
(2) 0
(3) 𝑛
(4) 0
(5) 𝑛 − 2𝑖 + 1
(6) 𝑛 − 2𝑖 + 1
(7) 0
(8) 𝑛
(9) 0
𝑛
[ ]
2
=> Tổng số phép gán: 2 + 𝑛 + ∑0 2(𝑛 − 2𝑖 + 1) + 𝑛
𝑛 𝑛 𝑛
[ ] [ ] [ ]
2 2 2

= 2𝑛 + 2 + 2 ∑ 𝑛 − 4 ∑ 𝑖 + 2 ∑ 1
0 0 0
𝑛 𝑛 𝑛 𝑛
= 2𝑛 + 2 + 2𝑛 ([ ] + 1) − 2 ([ ] + 1) [ ] + 2 ([ ] + 1)
2 2 2 2
𝑛2
+ 4𝑛 + 4 𝑛ế𝑢 𝑛 = 2𝑘 (𝑘 ∈ 𝑁)
= 2
𝑛2 7
{2 + 4𝑛 + 𝑛ế𝑢 𝑛 = 2𝑘 + 1 (𝑘 ∈ 𝑁)
2
b) Số phép so sánh trên từng dòng:
(1) 0
(2) 𝑛 + 1
(3) 0
(4) 𝑛 − 2𝑖 + 2
(5) 0
(6) 0
(7) 0
(8) 0
(9) 0
𝑛
[ ]
=> Tổng số phép so sánh: 𝑛 + 1 + ∑0 (𝑛 − 2𝑖 + 2) + ∑𝑛−1
2
𝑛
[ ]+1
1
2

𝑛 𝑛
𝑛 ([2] + 1) [2] 𝑛 𝑛
= 𝑛 + 1 + 𝑛 ([ ] + 1) − 2. + 2[ ] + 2+ 𝑛 − [ ] − 1
2 2 2 2
𝑛2
+ 3𝑛 + 2 𝑛ế𝑢 𝑛 = 2𝑘 (𝑘 ∈ 𝑁)
= 4
𝑛2 7
{4 + 3𝑛 + 𝑛ế𝑢 𝑛 = 2𝑘 + 1 (𝑘 ∈ 𝑁)
4
2. D
s ← 1, i ← 1 (1)
while i < n do (2)
j ← 1 (3)
while j ≤ i do (4)
s ← s + i*j (5)
j ← j + 1 (6)
end (7)
i ←2 * i (8)
end (9)
a) Số phép gán trên từng dòng:
(1) 2
(2) 0
(3) [log 2 𝑛] − 1
(4) 0
(5) 𝑖
(6) 𝑖
(7) 0
(8) [𝑙𝑜𝑔2 𝑛] − 1
(9) 0
2[𝑙𝑜𝑔2 𝑛]−1 −1
=> Tổng số phép gán: 2 + [𝑙𝑜𝑔2 𝑛] − 1 + 2 (1. )
2−1

= [𝑙𝑜𝑔2 𝑛] + 2𝑙𝑜𝑔2 𝑛 − 1
b) Số phép so sánh trên từng dòng:
(1) 0
(2) [log 2 𝑛] + 1
(3) 0
(4) 𝑖 + 1
(5) 0
(6) 0
(7) 0
(8) 0
(9) 0
=> Tổng số phép so sánh:
[𝑙𝑜𝑔2 𝑛]−1

[log 2 𝑛] + 1 + ∑ 2𝑘 + 1 = 2[log 2 𝑛] + 2[log2 𝑛]


𝑘=0

You might also like