Kompleksitas Waktu Asimptotik Anna Kurniawati
Kompleksitas Waktu Asimptotik Definisi : Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu fungsi n N yang cukup besar. Fungsi : N → R (sering R+) Notasi Asimtotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh algoritma. Waktu tempuh algoritma merupakan fungsi : N → R+
Kompleksitas Waktu Asimptotik Terdapat tiga macam yaitu : Keadaan terbaik (best case) Dilambangkan dengan notasi (...) dibaca Theta Keadaan rata-rata (average case) Dilambangkan dengan notasi (...) dibaca Omega Keadaan terburuk (worst case) Dilambangkan dengan notasi O(...) dibaca Big-O Kinerja sebuah algoritma biasanya diukur dengan menggunakan patokan keadaan terburuk (worst case) yang dinyatakan dengan Big-O
Notasi Big Oh Definisi 1 : waktu terburuk iff ada dua bilangan konstanta c dan no Theorema : Misal adalah suatu polinom derajat n. Maka
Notasi Theta Definisi 2 : waktu tercepat iff ada dua konstanta c dan no
Notasi Omega Definisi 3 : waktu rata-rata iff ada tiga konstanta positif c1, c2, dan no
Fungsi Kompleksitas
MENGHITUNG WAKTU PROSES (1) Contoh : Pseudocode Selection Sort (pseudocode 3.6) 1 for i=1 to N-1 do 2 min=i 3 for j=i+1 to N do 4 if A[j]<A[min] then 5 min=j 6 end if 7 end for 8 swap(A[i],A[min]) 9 end for Hitung waktu proses algoritma yang diperlukan untuk mengurutkan deretan yang berisi 8 angka acak ! Bagaimana jika ukuran input belum diketahui? Dinyatakan dengan N Waktu proses dinyatakan dengan sebuah persamaan N, selanjutnya disebut Fungsi Kompleksitas Fungsi Kompleksitas menyatakan seberapa kompleksnya sebuah algoritma
MENGHITUNG WAKTU PROSES (2) Asumsi bahwa nilai N belum diketahui Bisa dihitung bahwa untuk setiap perulangan i akan terjadi perulangan j sebanyak N-1, N-2, N-3, ..., 1 kali Misalkan nilai N adalah 5, berarti kita perlu menghitung 5+4+3+2+1 (rumus deret hitung) Dengan nilai a dan b = 1 diperoleh :
FUNGSI KOMPLEKSITAS Fungsi Kompleksitas algoritma Selection Sort di atas Dengan rumus Fungsi Kompleksitas N(N+1)/2 berarti jika N=5 maka waktu proses adalah 15. Jika nilai N diperbesar menjadi 8, maka waktu proses menjadi 36. Nilai N dan waktu proses bisa dipetakan dalam sebuah koordinat Cartesius dengan N di sumbu x dan waktu proses di sumbu y. Terlihat bahwa waktu proses algoritma Selection Sort bertumbuh (growth rate) secara linear.
MEMBACA BIG-OH O(1) artinya algoritma konstan O(n) artinya algoritma linear O(n2) artinya algorritma quadratic O(n3) artinya algoritma qubic O(log n) contohnya pada full balanced Binary Search Tree O(nm) artinya algoritma eksponensial Notasi Big-O bisa berisi kombinasi dari contoh di atas Penyederhanaan Big-O dilakukan pada komponen yang “less important”
LATIHAN Hitunglah Fungsi Kompleksitas untuk algoritma bilangan Fibonacci