Anda di halaman 1dari 15

Struktur Data (JEL-517)

4 Analisa Algoritma

Definisi 1/2

Algoritma Langkah-langkah selesaikan


masalah
Analisa Algoritma

Analisa kinerja algoritma

Untuk dibandingkan

Metrik Fungsi

Dengan N data

Seberapa cepat

Definisi 2/2

Contoh

Polinomial N2, N3, dll.

N2 N data butuh waktu N2 satuan

Eksponensial 2N, 3N, dll

Logarithmic log N

Konstanta C (=constant)

Notasi 1/2

O(N) Big-Oh

(N) Big-Omega

Batas atas = batas bawah

o(N) Little-Oh

Batas bawah

(N) Theta O(N) = (N)

Batas atas

Ada batas atas tidak ada batas bawah

(N) Little-Omega

Tidak ada batas atas ada batas bawah

Notasi 2/2

Contoh

O(N) = C1N3 + C2N2 + C3N + C4

Disederhanakan

O(n) N

Biasa dipakai O(n) Worst Case

Tutorial 11: Sequential Search 1/2

Algoritma
func sequentialSearch(cari, data)
for posisi = 1 s/d N
if cari == data[posisi]
return posisi
Exception tidak ketemu

O(N) ???

(N) ???

Tutorial 11: Sequential Search 2/2

O(N) N

(N) 1 C (constant)

Tutorial 12 Binary Search 1/3

Algoritma
func binarySearch(cari, data)
if banyak data ganjil
posisi = (banyak data + 1) / 2
else if banyak data genap
posisi = banyak data / 2
if data[posisi] == cari
return posisi
if data[posisi] < cari
return binarySearch(cari,
data dari 1 s/d posisi + 1
if data[posisi] < cari
return binarySearch(cari,
data dari posisi + 1 s/d banyak data

Tutorial 12 Binary Search 2/3

O(N) ???

(N) ???

Tutorial 12 Binary Search 2/3

O(N) log2 N

(N) 1 C

Praktikum 14 Hash 1/2

Algoritma
func hash(cari, data)
posisi = fungsiHash(cari)
return data[posisi]

http://j.mp/1jTn5TA

O(N) ???

(N) ???

Praktikum 14 Hash 2/2

O(N) 1 C

(N) 1 C

(N) C

Kinerja

O(N)

Sequential N

Hash C

Binary log2 N

Sequential C

Hash C

Binary C

(N)

Speed vs Size

Tradeoff

Cepat Space besar

Lambat Space kecil

Contoh

Sequential : Lambat space kecil

Hash : Sangat cepat space besar

Binary search : Cepat space sedang

Perlu sortir O(N) ???

Q&A

Anda mungkin juga menyukai