14. KOMPLEKSITAS ALGORITMA
14.1 PERTUMBUHAN FUNGSI Untuk keperluan analisis algoritma, kita perlu mengetahui seberapa cepat pertumbuhan atau perkembangan suatu fungsi. Pertumbuhan fungsi berkaitan erat dengan waktu yang diperlukan oleh sebuah komputer untuk menyelesaikan suatu tugas tertentu. Notasi-notasi yang digunakan untuk membandingkan pertumbuhan adalah:
Notasi O besar (big O) Definisi Jika terdapat f(n) dan g(n), serta bilangan positif C dan n0 maka f(n) = O (g(n)) sedemikian, sehingga 0 f(n) Cg(n) untuk n n0 Dengan kata lain pertumbuhan f(n) tidak akan melebihi Cg(n) Cg(n) disebut batas atas (upper bound) Pasangan C dan n0 tidak unik. Artinya ada beberapa C dan n0. f(n) = O(g(n)) dibaca : f(n) is big “O” of g(n)
f(n) Cg(n) n n0 f(n) = O (g(n))
Contoh 14.1 Tunjukkan bahwa n2 + 2n + 1 = O(n2) Penyelesaian n2 + 2n + 1 C n2 1+2/n + 1/n2 C Jadi C = 4 ; n0 = 1
Notasi Definisi Jika terdapat f(n) dan g(n), serta bilangan positif C dan n0 maka f(n) = (g(n)) sedemikian, sehingga 0 Cg(n) f(n) untuk n n0 Cg(n) disebut batas bawah (lower bound) Pasangan C dan n0 tidak unik. Artinya ada beberapa C dan n0.
f(n) Cg(n) n n0 f(n) = (g(n))
Contoh 14.2 Tunjukkan bahwa 8n3 + 5n2 + 7 = (n3) Penyelesaian 8n3 + 5n2 + 7 Cn3 8 + 5/n + 7/n3 C Jadi C = 8 ; n0 = 1
Notasi Definisi Jika terdapat f(n) dan g(n), maka f(n) = (g(n)), jika terdapat bilangan positif C1 dan C2 dan n0 sedemikian, sehingga memenuhi : 0 C1 g(n) f(n) C2 g(n) untuk n n0 Dengan kata lain, f(n) = (g(n)) jika f(n) = O(g(n)) dan f(n) = (g(n)) untuk n n0. f(n) = (g(n)) dibaca “f(n) adalah tetha g(n)” atau f(n) order g(n)
f(n) = (g(n)) f(n) C1g(n) n n0 C2g(n)
Contoh 14.3 Tunjukkan bahwa a) 2n2 + n – 7 dan b) 5n2 – 2n = (n2) Penyelesaian C1n2 2n2 + n – 7 C2n2 C1 2 + 1/n – 7/n2 C2 C1 = 3/4, C2 = 2, n0 = 2 C1n2 5n2 – 2n C2n2 C1 5 – 2/n C2 C1 = 3, C2 = 5, n0 = 1
o (little o) f(n) = o(g(n) jika pertumbuhan f(n) lebih lambat dari pertumbuhan g(n) untuk n yang sangat besar. Secara formal f(n) = o(g(n), jika Contoh 14.4 Tunjukkan bahwa 2n2 = o(n3) Penyelesaian: f(n) = 2n2 g(n) = n3
(little omega) f(n) = (g(n) jika pertumbuhan f(n) lebih cepat dari pertumbuhan g(n) untuk n yang sangat besar. Secara formal f(n) = (g(n), jika Contoh 14.5 Tunjukkan bahwa 2n3 = (n2) Penyelesaian f(n) = 2n3 g(n) = n2
Latihan A. Tentukan apakah fungsi berikut O (x2)? 3x + 7 x2 + x + 1 2x2 – 7 x3 + 2x2 – 4x + 1 B. Tentukan apakah fungsi pada (A) berikut (x2)?