Kali ini saya akan membahas tentang cara mencari Kompleksitas Algoritma Nilai Asimtotik Menggunakan O-notation, Omega-notation
- Mencari T(n)
C(n)
Output = 2n+1 Mis a
Input = 3 Mis b
Jumlah operasi :
← = 9n Mis c
< = n Mis d
+ = n Mis e
- = n Mis f
Maka Hasil dari perhitungan T(n) adalah sebagai berikut :
T(n) = (2n+1)a + 3b + (9n)c + (n)d + (n)e + (n)f
- Mencari O-notation
T(n) ϵ O(g(n))
jika
T(n) ≤ c.g(n)
T(n) ≤ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≤ c.g(n)
pengecekan jika n = 1, c = 18
= (2n+1)+3+(9n)+(n)+(n)+(n) ≤ 18.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≤ 18.1
= 3+3+9+1+1+1 ≤ 18
= 18 ≤ 18
Kondisi pengecekan menggunakan n = 1 dan c = 18 ternyata benar.
Pengecekan Lain
T(n) ≤ c.g(n^2) = (2n+1)+3+(9n)+(n)+(n)+(n) ≤ c.g(n^2)
pengecekan jika n = 20
= (2n+1)+3+(9n)+(n)+(n)+(n) ≤ 1*20^2
= (2*20+1)+3+(9*20)+(20)+(20)+(20) ≤ 1*20^2
= 41+3+180+20+20+20 ≤ 400
= 284 ≤ 400
Pengecekan benar.
maka jika n = 20 atau lebih maka hasilnya akan benar.
- Mencari Omega-notation
T(n) ϵ Ω(g(n))
jika
T(n) ≥ c.g(n)
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n)
pengecekan jika n = 1, c = 1
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≥ 1.1
= 3+3+9+1+1+1 ≥ 1
= 19 ≥ 1
Kondisi pengecekan menggunakan n = 1 dan c = 1 ternyata benar.
Pengecekan Lain
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n)
pengecekan jika n = 2
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.2
= (2*2+1)+3+(9*2)+(2)+(2)+(2) ≥ 1.2
= 5+3+18+2+2+2 ≥ 2
= 32 ≥ 2
Kondisi pengecekan menggunakan n = 2 ternyata benar.
Pengecekan Lain
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^0)
pengecekan jika n = 1, c = 1
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≥ 1.1
= 3+3+9+1+1+1 ≥ 1
=19 ≥1
Kondisi pengecekan menggunakan n = 1 dan c = 1 ternyata benar.
maka dapat dipastikan jika :
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^0)
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^-1)
:
:
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^-n) itu benar.
-Theta-notation
NIM :
10115496
Programer
: Mochamad Indra Yudha Lakaselindra
program selectionMin
const Nmaks = 100
type
larikInt =
array[1..Nmaks] of integer
Kamus
nilai :
larikInt
i, n : integer
procedure input(I/O
L:larikInt, banyakData : integer)
Kamus
i : integer
Algoritma
Output('Masukkan jumlah data : ') Input(banyakData)
for i ← 1 to banyakData do
begin
Output('Data ke-',i,' : ') Input(L[i])
end
end
procedure selectionMinAsc(I/O
L:larikInt, banyakData : integer)
Kamus
i,j,imin,temp : integer
algoritma
for i ← 1 to banyakData-1 do
begin
imin ←
i
for j← i + 1 to banyakData do
begin
if (L[j] < L[imin]) then
imin ←
j
end
end
temp ←[i]
L[i] ←
L[imin]
L[imin] ←
temp
end
end
algoritma
input(nilai, n)
selectionMinAsc(nilai, n)
for i← 1 to n do
begin
output('Data ke-',i,' = ',nilai[i])
end
end
|
- Mencari T(n)
C(n)
Output = 2n+1 Mis a
Input = 3 Mis b
Jumlah operasi :
← = 9n Mis c
< = n Mis d
+ = n Mis e
- = n Mis f
Maka Hasil dari perhitungan T(n) adalah sebagai berikut :
T(n) = (2n+1)a + 3b + (9n)c + (n)d + (n)e + (n)f
- Mencari O-notation
T(n) ϵ O(g(n))
jika
T(n) ≤ c.g(n)
T(n) ≤ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≤ c.g(n)
pengecekan jika n = 1, c = 18
= (2n+1)+3+(9n)+(n)+(n)+(n) ≤ 18.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≤ 18.1
= 3+3+9+1+1+1 ≤ 18
= 18 ≤ 18
Kondisi pengecekan menggunakan n = 1 dan c = 18 ternyata benar.
Pengecekan Lain
T(n) ≤ c.g(n^2) = (2n+1)+3+(9n)+(n)+(n)+(n) ≤ c.g(n^2)
pengecekan jika n = 20
= (2n+1)+3+(9n)+(n)+(n)+(n) ≤ 1*20^2
= (2*20+1)+3+(9*20)+(20)+(20)+(20) ≤ 1*20^2
= 41+3+180+20+20+20 ≤ 400
= 284 ≤ 400
Pengecekan benar.
maka jika n = 20 atau lebih maka hasilnya akan benar.
- Mencari Omega-notation
T(n) ϵ Ω(g(n))
jika
T(n) ≥ c.g(n)
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n)
pengecekan jika n = 1, c = 1
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≥ 1.1
= 3+3+9+1+1+1 ≥ 1
= 19 ≥ 1
Kondisi pengecekan menggunakan n = 1 dan c = 1 ternyata benar.
Pengecekan Lain
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n)
pengecekan jika n = 2
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.2
= (2*2+1)+3+(9*2)+(2)+(2)+(2) ≥ 1.2
= 5+3+18+2+2+2 ≥ 2
= 32 ≥ 2
Kondisi pengecekan menggunakan n = 2 ternyata benar.
Pengecekan Lain
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^0)
pengecekan jika n = 1, c = 1
= (2n+1)+3+(9n)+(n)+(n)+(n) ≥ 1.1
= (2*1+1)+3+(9*1)+(1)+(1)+(1) ≥ 1.1
= 3+3+9+1+1+1 ≥ 1
=19 ≥1
Kondisi pengecekan menggunakan n = 1 dan c = 1 ternyata benar.
maka dapat dipastikan jika :
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^0)
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^-1)
:
:
T(n) ≥ c.g(n) = (2n+1)+3+(9n)+(n)+(n)+(n) ≥ c.g(n^-n) itu benar.
-Theta-notation
T(n) ϵ ϴ(g(n))
jika
c2.g(n) ≤ T(n) ≤ c1.g(n)
Terimakasih ^_^