Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma dan Struktur Data

Presentasi serupa


Presentasi berjudul: "Algoritma dan Struktur Data"— Transcript presentasi:

1 Algoritma dan Struktur Data
Pertemuan 6 Pembahasan tugas 3

2 Pangkat xn , n>=0. Base case adalah jika n bernilai 0 maka jawabannya adalah 1. Recursive casenya adalah : xn = x * xn-1. x * x n-1, n>0 1, n = 0 xn

3 Implementasikan fungsi pangkat dalam bahasa C dalam bentuk iteratif dan rekursifnya
Hitung C(n), Efisiensi waktu algoritma pangkat ada pada kelas apa? Dikumpulkan pada pertemuan kedua sesudah lebaran Tugas dibahas oleh mahasiswa dengan nomor urut mod 10 == 9

4 Program #include <stdio.h> #include <conio.h>
float pangkat(int X, int n); void main() { int A = 4; int B = 3; printf("%d pangkat %d adalah %f", A, B, pangkat(A, B)); getch(); } float pangkat(int X, int n) if (n == 0) return(1); else return(X * pangkat(X, n - 1));

5 Metrik untuk ukuran input
Sesuatu pada input yang jika membesar, maka pemanggilan fungsi rekursif bertambah Pada kasus ini adalah nilai n. Jika n membesar, maka pemanggilan fungsi rekursi bertambah Kompleksitas dinyatakan sebagai fungsi dari n Untuk memahaminya coba gambar pohon rekursifnya.

6 Salah satu operasi pada recursive casenya
Basic operation Salah satu operasi pada recursive casenya Basic operationnya dapat dipilih * yang dilakukan 1 kali untuk setiap pemanggilan fungsi rekursif return(X * pangkat(X, n - 1))

7 Banyaknya eksekusi basic operation
Jika algoritma pangkat dieksekusi dengan input (X, n), maka basic operation dieksekusi satu kali. Namun pada saat eksekusi, algoritma tersebut juga memanggil dirinya sendiri dengan input n-1. Hal ini mengakibatkan pada pemanggilan pangkat(X, n - 1) basic operation dieksekusi lagi. Proses rekursi dilakukan terus selama nilai n > 0. return(X * pangkat(X, n - 1))

8 Banyaknya eksekusi basic operation
Jika C(n) menyatakan banyaknya basic operation dieksekusi untuk input (X, n) dan C(n - 1) menyatakan banyaknya basic operation dieksekusi untuk input (X, n-1), maka hubungan antara C(n) dan C(n - 1) dinyatakan dengan C(n) = C(n - 1) + 1 untuk n > 1 C(0) = 0, base case

9 Case Apakah ada best case, average case dan worst case? Tidak ada Untuk input n tertentu misal X = berapa saja dan n = 4, banyaknya pemanggilan fungsi rekursif selalu sama. Sehingga tidak ada best case, average case dan worst case

10 Perhitungan efisiensi waktu
Untuk mengetahui efisiensi waktunya kita harus menemukan persamaan langsung (non recursive) dari C(n)

11 Perhitungan efisiensi waktu
Menggunakan metode backward substitution, dicari pola dari C(n) : C(n) = C(n - 1) + 1 C(n) = (C(n - 2) + 1) + 1 = C(n) = C(n - 2) + 2 C(n) = (C(n - 3) + 1) + 2 = C(n) = C(n - 3) + 3 dst Pola atau bentuk umum yang didapatkan adalah C(n) = C(n - i) + i.

12 Perhitungan efisiensi waktu
Nilai initial condition C(0) disubtitusikan ke C(n - i) pada bentuk umum C(n). C(n) = C(n - i) + i C(n) = C(0) + i C(n) = i

13 Perhitungan efisiensi waktu
Subtitusi tersebut mensyaratkan C(n - i) = C(0) atau n – i = 0 i = n nilai i = n disubtitusikan ke bentuk umum C(n) = i sehingga C(n) = n C(n) Є O(n) Apa artinya? Jika untuk menghitung 43 membutuhkan t satuan waktu maka untuk menghitung 46 membutuhkan 2t satuan waktu!


Download ppt "Algoritma dan Struktur Data"

Presentasi serupa


Iklan oleh Google