Resume Merge Sort Dan Rekursif
Resume Merge Sort Dan Rekursif
T(n) = 2
if p < r then
q(p+r)/2
(n/2)
Merge-Sort(A, p, q)
T(n/2)
Merge-Sort(A, q+1, r)
(divide + (n/2)
Merge(A, p, q, r)
while (i <= q) do
begin
B[k] := A[i];
k := k + 1;
i := i + 1;
end;
while (j <= r) do
begin
B[k] := A[j];
k := k + 1;
j := j + 1;
end;
for k := p to r do A[k] := B[k];
end;
procedure MergeSort (var A: INTARRAY; p, r: integer);
var q: integer;
begin { MergeSort }
if (p < r) then
begin
q := (p + r) div 2;
MergeSort (A, p, q);
MergeSort (A, q + 1, r);
Merge (A, p, q, r);
end;
end.
Implementasi Merge Sort :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void printv(char* in, int *v, int n) {
printf("%s", in);
int i = 0;
REKURSIF
Rekursif adalah teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari
masalah terjadi berulang kali. Tentu saja, tipe dari masalah ini dapat dipecahkan mengunakan
perkataan berulang-ulang (yaitu, menggunakan konstruksi looping seperti for, while dan dowhile).
Rekursi berarti suatu proses yang bisa memanggil dirinya sendiri.
Contoh proses menghitung nilai faktorial
Faktorial (0) = 1 ..................(1)
Faktorial (N) = N * Faktorial (N-1), N > 0 ...........(2)
Persamaan (2) merupakan contoh hubungan rekurensi, yang berarti bahwa nilai suatu fungsi
dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil.
Persamaan (1) yang tidak bersifat rekursif disebut nilai awal.
Setiap fungsi rekursi paling sedikit memiliki 1 nilai awal, jika tidak, fungsi tersebut tidak bisa
dihitung secara eksplisit.
Rekursi berarti suatu proses yang bisa memanggil dirinya sendiri.
Contoh proses menghitung nilai faktorial
Faktorial (0) = 1 ..................(1)
Faktorial (N) = N * Faktorial (N-1), N > 0 ...........(2)
Persamaan (2) merupakan contoh hubungan rekurensi, yang berarti bahwa nilai suatu fungsi
dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil.
Persamaan (1) yang tidak bersifat rekursif disebut nilai awal.
Contoh:
O(n d )
d
O(n log n)
O( n logb a )
jika a b d
jika a b d
jika a b d
Prinsip dari metode iterasi adalah menjabarkan rekurensi sebagai suatu bentuk penjumlahan yang
hanya bergantung pada n dan syarat awal.
T (n)
T (n)
n 3T n / 4
n 3 n / 4 3T n /16
n 3 n / 4 3 n /16
3 T n / 64
n 3 n / 4 9 n /16
27 T n / 64
log 4 n 1
3
n
i 0 4
4 n o ( n)
O ( n)
n log 4 3
Ket:
Nilai T(n) diganti menjadi T(3/4) dan setiap langkahnya ditambah 1/4n sampai
dengan 4 kali pengulangan.
Tn = n + T(n)
T(n) = n+2T(n/2)= n log2n, nilai n = (n/2)
n
n/2
n/4
n
n/2
n/4 n/4
n/4
n
n
_
nk
n log2n
Teorema master
1.
f ( n) O nlogb a
T (n) n logb a
2.
f ( n) nlogb a
T (n) n logb a lg n
3.