Analisa Algoritma
Pendahuluan
Suatu permasalahan memungkinkan untuk
Mengukur Efisiensi :
Perbandingan Empiris: Run Program
Analisis Algoritma
Analisis algoritma asimptotis (asymptotic algorithm
Contoh:
Diberikan suatu algoritma untuk menemukan nilai terbesar
Misalkan c jumlah waktu yang diperlukan untuk menguji suatu nilai dalam
Contoh 2
Misal cuplikan kode program sebagai berikut
sum = 0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
sum++ ;
Maka, T(n) = c2 n2
n: ukuran input yang dapat diproses dalam satu detik pada komputer 1
n: ukuran input yang dapat diproses dalam satu detik pada komputer 2
T(n)
n'
Perubahan
n'/n
10n
1.000
10.000
n' = 10n
10
n' = 10n
10
10n
20n
500
5.000
5n log n
250
1.842
2n2
70
223
2n
13
16
n' =
n' = n + 3
7,37
3,16
--
Contoh-contoh
Contoh 2.4:
Contoh-contoh:
Contoh 2.6 :
Contoh
Diketahui T(n) = c1n2 + c2n pada average case.
Dapatkan (g(n))
|c1n2 + c2n| c1|n2| untuk semua n > 1
Sehingga,
|T(n)| c|n2| untuk c=c1 dan n0=1
Jadi, berdasarkan definisi, T(n) adalah anggota dari
(n2).
Demikian juga, T(n) juga merupakan anggota dari
(n) dan (1). Pada kasus ini yang kita pilih adalah
batas bawah terbesar (greatest lower bound).
Big-Theta
Definisi :
Suatu algoritma dikatakan anggota (h(n)) jika
algoritma itu adalah anggota O(h(n)) dan anggota
(h(n))
Contoh 2.9 :
Contoh:
Aturan Simplifikasi
Ketika kita menentukan persamaan running time
Jika f(n) adalah anggota O(g(n)) dan g(n) adalah anggota O(h(n)),
maka f(n) adalah anggota O(h(n)).
2)
3)
Contoh 3.10:
sum = 0;
for (i=1; i<=n; i++)
sum += n;
25
sum = 0;
for (j=1; j<=n; j++)
for (i=1; i<=j; i++)
sum++;
for (k=0; k<n; k++)
A[k] = k;
26
27
28
Slide berikutnya