Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma dan Struktur Data Pertemuan 3 Pengantar Analisa Efisiensi Algoritma.

Presentasi serupa


Presentasi berjudul: "Algoritma dan Struktur Data Pertemuan 3 Pengantar Analisa Efisiensi Algoritma."— Transcript presentasi:

1 Algoritma dan Struktur Data Pertemuan 3 Pengantar Analisa Efisiensi Algoritma

2  Efisiensi waktu seberapa cepat algoritma dieksekusi  Efisiensi memori berapa banyak memori yang dibutuhkan untuk menjalankan algoritma Analisa efisiensi algoritma bertujuan mengestimasi waktu dan memori yang dibutuhkan untuk mengeksekusi sebuah algoritma atau fungsi

3 Ukuran input banyaknya data input yang diolah oleh algoritma Contoh : ??? Faktor apa yang mempengaruhi efisiensi waktu sebuah algoritma? Basic operation bagian dari algoritma yang yang dieksekusi berulang - ulang

4 Algorithm sequential search (A[0..n-1], K) // searches for a given value in a given array by sequential search // input: an array A[0..n-1] and a search key K // output: returns the index of the first element of A that matches K or -1 if there are no matching elements i  0 1 x while i  n and A[i]  K do 2 x i  i + 11 x if i  n return i 2 x else return -11 x Jelaskan isi algoritma di atas

5 Berapa ukuran input algoritma sequential search?  Basic operation selalu merupakan bagian loop paling dalam. Mengapa???  Bagian program non basic operation memberi tambahan sangat kecil pada waktu eksekusi program Tunjukkan basic operationnya

6 i  0 1 x while i  n and A[i]  K do 2 x i  i + 11 x if i  n return i 2 x else return -11 x Estimasikan waktu eksekusi algoritma sequential search! Sequential Search

7 T(n) = estimasi waktu eksekusi algoritma untuk input berukuran n T(n) = cop x C(n) Cop = waktu untuk mengeksekusi basic operation satu kali. Biasanya ditentukan 1 satuan waktu. Pada contoh sequential search, 1 satuan waktu kira - kira membutuhkan berapa clock CPU???

8 C(n) berapa kali basic operation dieksekusi untuk data berukuran n T(n) = cop x C(n) Pada kasus sequential search nilai C(n) tergantung dari posisi elemen yang akan dicari

9 Best-case Anda beruntung. Nilai yang dicari ada pada posisi awal array. Setelah nilainya ditemukan, algoritma selesai dieksekusi. C(n) = 1 dan T(n) = 1 satuan waktu Worst-case Anda sial. Nilai yang dicari ada di posisi terakhir array atau tidak ada di array. C(n) = n dan T(n) = n satuan waktu Average-case Kasus paling umum. Nilai yang dicari bisa terletak di elemen mana saja dengan kemungkinan sama Best Case, Worst Case, Average Case

10 Asumsikan 1.Data yang dicari memang ada pada array 2.Probabilitas data yang dicari terdapat di elemen tertentu sama besar untuk semua elemen array. Sehingga probabilitas sebuah data muncul pada elemen ke i adalah 1/n Average Case

11 Banyaknya eksekusi basic operation jika data yang dicari ada pada posisi 1 st position = 1 2 nd position = 2 ……. i th position = i ……. n th position = n Average Case

12 C(n) atau banyaknya eksekusi basic operation untuk data berukuran n 1  (1/n) + 2  (1/n) + 3  (1/n) + …….. + i  (1/n) + …… + n  (p/n) = (1/n)( … + n) = (1/n)(n(n+1))/2 = (n+1)/2 Average Case T(n) = (n+1)/2 satuan waktu

13  Tujuan utama mencari T(n) bukan mencari waktu eksak yang dibutuhkan untuk mengeksekusi sebuah algoritma  Tetapi untuk mengetahui tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah (order of growth) Catatan

14 Orders of Growth Tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah

15 Orders of Growth Urutkan waktu eksekusi algoritma di bawah ini berdasarkan order of growthnya T1 (n) = n 2 T1 (10) = 100 T1 (100) = 10,000 T2(n) = 2nT2(10) = 1,028T2(100) = 1.3 x 030 T3(n) = n3T3(10) = 1,000T3(100) = 1,000,000 T4(n) = nT4(10) = 10T4(100) = 100 T5(n) = log2 nT5(10) = 3.3T5(100) = 6.6

16 Orders of Growth  Makin ke bawah, order of growth makin besar  Untuk input data berukuran besar, algoritma dengan order of growth besar eksekusi waktunya jauh lebih lama dari algoritma dengan order of growth kecil Cconstant, we write O(1) logNlogarithmic Nlinear NlogN N 2 quadratic N 3 cubic 2 N exponential N!factorial

17 f(n) Є O(g(n)) Cara membaca “f(n) berada pada kelas g(n)” The Big-Oh Notation f(n) Є O(g(n)) Jika orders of growth f(n) kurang atau sama dengan(n).

18 Cconstant, we write O(1) logNlogarithmic Nlinear NlogN N 2 quadratic N 3 cubic 2 N exponential N!factorial The Big-Oh Notation N 2 Є O(N 2 ) paling presisi NlogN Є O(N 2 ) N Є O(N 2 ) log 2 N Є O(N 2 ) logN Є O(N 2 ) C Є O(N 2 )

19 Rinaldi M/IF2091 Strukdis19 O(1)Waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n.

20 Rinaldi M/IF2091 Strukdis20 O(n)Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula. O(n log n)Bila n dijadikan dua kali semual, maka n log n menjadi lebih dari dua kali semula (tetapi tidak terlalu banyak)

21 Rinaldi M/IF2091 Strukdis21 O(n 2 )Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula. O(n 3 )Bila n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat menjadi delapan kali semula.

22 Rinaldi M/IF2091 Strukdis22 O(2 n )Bila n dijadikan dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula! O(n!)Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma menjadi faktorial dari 2n.

23 Rinaldi M/IF2091 Strukdis23

24  Implementasikan bubble sort dalam bahasa C  Hitung T(n) untuk bubble sort  Efisiensi waktu bubble sort berada pada kelas apa? Tugas  Dikumpulkan dan dibahas pada pertemuan pertama setelah libur lebaran  Tugas dipresentasikan oleh mahasiswa yang memiliki nomor urut mod 10 == 8


Download ppt "Algoritma dan Struktur Data Pertemuan 3 Pengantar Analisa Efisiensi Algoritma."

Presentasi serupa


Iklan oleh Google