berikut contohnya
i:=0;
while i<N do
begin
i:=i+1;
//statement;
end;
Tapi dalam penulisan Big O ada syarat penulisan, salah satunya adalah "tidak boleh menyertakan konstanta dalam penulisannya".
Contoh
i:=0;
while i<N do
begin
i:=i*2;
//statement;
end;
sebenarnya kompleksitas code diatas O(2Log N), namun karena big O tuh mempunyai syarat "konstanta tidak di hitung" maka 2Log N ditulis O(Log N). maka code diatas di tulis O(Log N).
i:= -2;
while i<N do
begin
i:=i+1;
//statement;
end;
kompleksitas potongan program yg di atas itu adalah O(N+2). tapi menurut aturan penulisan big O, itu hanya di tulis O(n) karena konstanta tidak perlu di tulis.
kenapa konstanta tidak perlu di tulis ?
karena konstanta dapat dihitung dan biasanya tidak mendekati tak hingga. bandingkan dengan N yg nilai nya mungkin saja bisa meledak hingga limit mendekati tak hingga. sedangkan konstanta nilai nya sudah terbatas.
contoh lagi
i:=0;
while i<N do
begin
i:=i+1;
j:=0;
while j<N do
begin
j:=j+1;
//statement;
end;
end;
Code diatas memiliki O(N2) karena memiliki double looping.
contoh lagi
i:=0;
while i<N do
begin
i:=i+1;
j:=0;
while j<N do
begin
j:=j+1;
k:=0;
while k<N do
begin
k:=k+1;
//statement;
end;
end;
end;
Sudah tau dong apa jawabannya. yap. O(N3). karena program diatas memiliki triple looping.
untuk info lebih lanjut. tanya pak wikipedia, buka aja link yang ini ya.
Jadi kirakira begitu lah Big O notation, jika ada kesalahan mohon maaf karena kurakura sendiri pun kurang mengerti tentang Big O notation. Ohya, sebagai bocoran, kurakura akan membahas macammacam kompleksitas dan kecepatannya. Sekian posting kurakura, jika ada kesalahan kurakura mohon maaf.
Source : Post by drw_di-ar (kurakuraprogrammer) at Forum Olimpiade.org
Bye. Selamat Berpuasa bagi yang Melaksanakan.
salam kurakura :)
udah dicoba tapi blum terlalu paham !!!
BalasHapusada yang lebih details g ?
mantab nih.. thanks penjelasannya bro :)
BalasHapusbagaimana kalau soalan dye seperti ini..
BalasHapusfor (i = n; i>0 ; i--) {
cout<<”hello”;
}
adakah Jawapan T(n)= O(n)?? masih konfius ..
Setau saya itu juga O(N) sebab perulangan terjadi sebanyak n kali dengan nilai n yang terus berkurang hingga <= 0.
HapusTerima kasih, sedikit bingung sama penjelasan wiki :) At least... Yang ini lebih jelas buat saya...
BalasHapusKalau untuk mengatahui Big O Forward Chaining ?
BalasHapusfunction PL-FC-ENTAILS? (KB, Q) returns True or False
inputs: KB, the knowledge base, a set of propositional definite clauses q, the query, a proposition symbol count a table, where count( e] is the number of symbols in c's premise inferred a table, where inferred[s] is initially false for all symbols agenda a queue of symbols, initially symbols known to be true in KB
while agenda is not empty do
p PoP(agenda)
if p = q then return true
if inferred[p]= false then
inferred[p] true
for each clause c in KB where p
is in c.PREMISE do
decrement count[c]
if count[c] = 0 then
add
c.CONCLUSION to agenda
return false