03 Divide and Conquer Indonesia
03 Divide and Conquer Indonesia
03 Divide and Conquer Indonesia
Struktur rekursif
1 22 26 19 55 37 43 99 2
18 26 32 6 43 15 9
22 26 19 55 37 43 99 2
18 26 32 6
43 15 9
22 26 19 55
18 26 32 6
43 15
22 26 19 55 37 43 99 2
18 26 32
43 15
22 26 19 55 37 43 99
37 43 99 2
Barisan Terurut
18 26 32 6 43 15 9
18 26 32 6
43 15 9
6 18 26 32
18 26 32 6
43 15
18 26
15 43
18 26 32
43 15
18 26 32
43 15
18 26 32
43 15
15 18 26 32 43
6 32
6
15 43
43
Merge-Sort (A, p, r)
INPUT: Barisan n bilangan disimpan dalam larik A
OUTPUT: Barisan terurut n bilangan
Procedure Merge
Merge(A, p, q, r)
1 n1 q p + 1;
2 n2 r q;
3 for i 1 to n1
4
L[i] A[p + i 1];
5 for j 1 to n2
6
R[j] A[q + j];
7 L[n1+1] ;
8 R[n2+1] ;
9 i 1;
10 j 1;
11 for k p to r
12
if L[i] R[j] then
13
A[k] L[i];
14
i i + 1;
15
else A[k] R[j]
16
j j + 1;
Sentinels, untuk
menghindari keharusan
mengecek jika sub-larik
terkopi menyeluruh pada tiap
langkah.
Merge Contoh
A
6
i
61
86 26
1 32
9 42 43
8 32
9 26
k k
8 26 32
9 42 43
Correctness of Merge
Merge(A, p, q, r)
1 n1 q p + 1;
2 n2 r q;
3 for i 1 to n1
4
L[i] A[p + i 1];
5 for j 1 to n2
6
R[j] A[q + j];
7 L[n1+1] ;
8 R[n2+1] ;
9 i 1;
10 j 1;
11 for k p to r
12
if L[i] R[j] then
13
A[k] L[i];
14
i i + 1;
15
else A[k] R[j]
16
j j + 1;
Tugas03
Berikan bukti bahwa loop pada algoritma
Merge(A,p,q,r) bekerja dengan benar
dengan menunjukkan mekanisme
Inisialisasi, Maintenance, dan Terminasi
(Ref: Intro to Algorithms, MIT Press)
Rekurensi
Relasi Rekurensi
Metode Substitusi.
Metode Pohon-Rekursi.
Metode Master.
Metode Substitusi
jika n = 1
jika n > 1
Tebak: T(n) = n lg n + n.
Induksi:
Basis: n = 1 n lgn + n = 1 = T(n).
Hipotesis: T(k) = k lg k + k for all k < n.
Langkah Induktif: T(n) = 2 T(n/2) + n
= 2 ((n/2)lg(n/2) + (n/2)) + n
= n (lg(n/2)) + 2n
= n lg n n + 2n
= n lg n + n
Metode Pohon-Rekursi
cn/2
T(n/2)
cn/2
T(n/2)
T(n/4) T(n/4) T(n/4) T(n/4)
Cost of sorting
subproblems.
cn/2
cn
cn
cn/2
lg n + 1
cn/4 cn/4
cn/4
cn/4
c c
cn
c
Total
cn
: cn lg n + cn
Metode Master
Master Method,
Example 1
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
4T (n / 2) n
Master Method,
Example 2
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
2T (n / 2) n log n
Master Method,
Example 3
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
T (n / 3) n log n
Master Method,
Example 4
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
8T (n / 2) n
Master Method,
Example 5
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
9T (n / 3) n
Master Method,
Example 6
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
T ( n)
Example:
T (n / 2) 1
(binary search)
Master Method,
Example 7
c
The form: T (n )
aT ( n / b) f ( n )
if n d
if n d
Tugas03
1. Jelaskan dengan simulasi cara kerja Algoritma Merge Sort
2. Berikan bukti bahwa loop pada algoritma Merge(A,p,q,r)
bekerja dengan benar dengan menunjukkan mekanisme
Inisialisasi, Maintenance, dan Terminasi
(Ref: Intro to Algorithms, MIT Press)
3. Gunakan metode master untuk menentukan solusi dari
fungsi rekurensi berikut, lalu tunjukkan pohon rekursi dari
masing-masin rekurens dan berikan bukti secara induksi
matematika
Tugas03
4. Menggunakan metode Divide-and-Conquer,
rancang algoritma sederhana untuk menghitung
jumlah data dalam sbuah larik A.
Misal, A =
maka total = 167