Professional Documents
Culture Documents
Nim: 1915101012
Kelas: Ilkom VI A
For assignments 2 and 3 roughly takes the same amount of time everytime, no
matter how big or small the i value is. Meanwhile, the 5 assignment, needs to
repeat the process n time, until the if statement fulfilled. So, the time
complexity for the Naive GCD Algorithm is 2 + n.
b. Euclidean Algorithm
a. Best case
Best case akan terjadi jika A[1] = x, sehingga found bernilai
benar.𝑇 𝑀𝑖𝑛(𝑛) = 1
b. Worst Case
Worst case terjadi jika A[i] = x, sehingga algoritma melakukan perulangan
(while). Hal ini menyebakan nilai x tidak diemukan. 𝑇 𝑀𝑎𝑥(𝑛) = 𝑛.
c. Average Case
𝑛(𝑛 + 1)
1 + 2 + 3 + ⋯ . +𝑛 2 𝑛(𝑛 + 1) 1 𝑛 + 1
𝑇𝑎𝑣𝑔 = = 𝑛 = . =
𝑛 2 𝑛 2
1
log 2 𝑛 ≤ log 2 𝑛2
≤ 2 log 2 𝑛
max(𝛰(𝑛2 log n), Ο(n log n)) = (𝑛2 log n) then is 𝛰(𝑛2log n).
5. 𝑛 log 3 𝑛 + 𝑛 log 2 𝑛
log 3 𝑛 ≤ log 3 𝑛2
≤ 2 log 3 𝑛
log 2 𝑛 ≤ log 2 𝑛2
≤ 2log 2 𝑛
Since: 𝑛 = ∈ Ο(n)
log 3 𝑛 and log 2 𝑛 = ∈ Ο(log n)
𝑛 log 3 𝑛 + 𝑛 log 2 𝑛 ∈ (Ο(n) . Ο(log n)+ (Ο(n) . Ο(log n))
∈ Ο(max(n log n, n log n))
max(Ο(n log n), Ο(n log n)) = (n log n) then is Ο(n log n).
log 2 ≤ 1
3 log 8 𝑛 + log 2 log 2 log 2 𝑛 ∈ (Ο(1) . Ο(log n)+ (Ο(1). Ο(1) . Ο(log n )
)
∈ Ο(max(log n, log n))
max(Ο(log n), 0)= (log n) then is Ο(log n).
9. 100𝑛𝑙𝑜𝑔3 𝑛 + 𝑛3 + 100𝑛
log 3 𝑛 ≤ log 3 𝑛2
≤ 2 log 3 𝑛
log 4 𝑛 ≤ log 4 𝑛2
≤ 2 log 4 𝑛
log 2 ≤ 1
log 2 n ≤ log 2 𝑛2
≤ 2log 2 𝑛
25
n= 10
TB(n) = 25n
25
= 25. 10
= 80
25
Terbukti, n = 10
Dalam aturan Big-O, algoritma yang bekerja lebih baik adalah O(n).
Batasan nilai n agar algoritma B memiliki kompleksitas waktu yang lebih baik
25
adalah n = .
10
TA(n) = cAn log10 n, TB(n) = cBn, untuk meproses data n dalam milidetik
Untukn n = 104 data:
rata-rata TA(n) = 100 milidetik
rata-rata TB(n) = 500 milidetik
TB(n)
cB = n
500
= 104
1
= 20
1 1
n log10 𝑛 > 20n
400
n log 𝑛 n
> 20
400
log 𝑛
>1
20
log n >20
1020 >n
Batasan nilai n agar perangkat A bekerja lebih cepat dibandingkan perangkat
B adalah n < 1020 . Adapun batasan nilai n agar perangkat B bekerja lebih
cepat lambat dari perangkat A adalah n > 1020 .
Perangkat mana yang Anda rekomendasikan jika kita harus memproses data
dengan ukuran tidak lebih dari n = 109 adalah perangkat A, karena perangkat
A bekerja lebih cepat dibandingkan perangkat B adalah n < 1020 .
(b) Let 𝑇1 (𝑛) ∈ O(f(n)) and 𝑇2 (𝑛) ∈ O(g(n)). Prove the following:
(a) 𝑇1 (𝑛) + 𝑇2 (𝑛) ∈ O(f(n)) + O(g(n)) ∈ O(max(f(n), g(n)))
(b) 𝑇1 (𝑛) · 𝑇2 (𝑛) ∈ O(f(n)) · O(g(n)) ∈ O(f(n) · g(n))
(c) O(cf(n)) ∈ O(f(n)), where c is a constant
(d) f(n) ∈ O(f(n))
Jawab:
(a) 𝑇1 (𝑛) + 𝑇2 (𝑛) ∈ O(f(n)) + O(g(n)) ∈ O(max(f(n), g(n)))
𝑇1 (n) ≤ 𝑐1 . 𝑓1 (n)
Untuk n > 𝑛1 , karena 𝑇1 ∈ O(𝑓1 )
𝑇2 (n) ≤ 𝑐2 . 𝑓2 (n)
Untuk n > 𝑛2 , karena 𝑇2 ∈ O(𝑓2 )
c; c>0
Dengan syarat, n > max
⏟ (𝑛1 , 𝑛2 ) .
𝑛0
(b) 𝑇1 (𝑛) · 𝑇2 (𝑛) ∈ O(f(n)) · O(g(n)) ∈ O(f(n) · g(n))
𝑇1 (n) ≤ 𝑐1 . 𝑓1 (n)
Untuk n > 𝑛1 , karena 𝑇1 ∈ O(𝑓1 )
𝑇2 (n) ≤ 𝑐2 . 𝑓2 (n)
Untuk n > 𝑛2 , karena 𝑇2 ∈ O(𝑓2 )
Dengan syarat:
Factor konstan diabaikan dan hanya kekuatan fungsi n yang boleh
dieksploitasi.
1
Nilai 𝑓(𝑛) = 𝑂(𝑛2 ) ekuivalen dengan 𝑛 ≤ 𝑎𝑛2 atau 𝑛 ≤ a, jadi cukup untuk
memilih a. Namun, sebaliknya akan membutuhkan 𝑛2 ≤ 𝑎𝑛 atau n ≤ a untuk
tetap benar, yaitu a tidak bisa menjadi konstan.
f(n) = 1 dan g(n), sehingga Min (f(n) , g(n)) = 1 apapun n, tetapi jelas f(n) +
g(n) = 1 + n ≠ O(1), jadi demikian juga f(n) + g(n) ≠ 𝜃 (min f(n) , g(n))
Di sisi lain, log f(n) = O(log(g(n)) berarti ada b>0 sehingga: log f(n) ≤ b log
g(n)
Untuk n cukp besar, bisakah kita menemukan nilai b yang akan menjadi kedua
ketidaksetaraan benar?
log 𝑎
⟺ log 𝑔(𝑛) + 1 ≤ 𝑏
Bahwa b harus dipilih sebagai untuk membuktikan ini, dan ini hanyalah
mungkin jika g(n) > 1 cukup besar. Jika g secara berkala mencapai 1 saat n
meningkat, maka klaimnya itu salah.
Benar. Jika f(n) = O(g(n)), maka ada a > 0 dan 𝑛0 > 0 seperti:
𝑛 ≥ 𝑛0 ⟹ 𝑎𝑔(𝑛)
1
⟺ 𝑔(𝑛) ≥ 𝑎 𝑓(𝑛)
Definisi penjelasannya dari kata Ω denga konstanta penskalaan dipilih sebagai
1/a.
f. If f(n) ∈ O(g(n)) then g(n) ∈ Ω(f(n))
Salah. Contoh penyangkalannya:
𝑛 𝑛
𝑓(𝑛) = 𝑒𝑥𝑝 𝑛 dengan 𝑒𝑥𝑝 𝑛 ≤ 𝑎 exp ( 2) 𝑑𝑎𝑛 𝑎 ≥ 𝑒𝑥𝑝 ( 2)
Jadi a →∞ sebagai n →∞, sebuah kontradiksi dari asumsi itu harus konstan.
g. f(n) ∈ Θ(f(n/2))
Benar
𝑓(𝑛) + 𝑂(𝑓(𝑛)) ≤ 𝑓(𝑛) + 𝑎𝑓(𝑛)
= (1 + 𝑎)𝑓(𝑛)
Untuk beberapa konstan a > 0 dan n cukup besar. Sehingga, dengan jelas
(1 + 𝑎)𝑓(𝑛) ≤ 𝑏𝑓(𝑛) ⟹ 𝑏 ≥ 1 + 𝑎. Menunjukkan validitas dari kesetaraan
di dalam O, dan (1 + 𝑎)𝑓(𝑛) ≥ 𝑐𝑓(𝑛) ⟹ 𝑐 ≤ 1 + 𝑎. Di Ω, dan hasilnya
mengikuti.