Fakhriah fildzah
RESUME
A. MERGE SORT
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk
memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan
untuk ditampung dalam memori komputer karena jumlahnya yang terlalu besar. Algoritma
ini ditemukan oleh John von Neumann pada tahun 1945.
Cara kerja algoritma merge sort adalah membagi array data yang ada menjadi dua bagian
yang sama panjang atau paling tidak berselisih 1. Kedua array yang baru juga di bagi dua,
dan seterusnya sampai tidak bisa di bagi lagi.
Setelah semua array terpecah dan tidak bisa dibagi lagi, maka array tunggal tersebut di
urutkan dan di letakkan pada array baru sebagai hasil akhir.
Contoh penerapan atas sebuah larik/array sebagai data sumber yang akan diurutkan {3, 9, 4,
1, 5, 2} adalah sebagai berikut:
pertama kali larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}
Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2, 5}
Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut {1},
sementara nilai-nilai dalam masing larik {3, 4, 9} dan {2, 5} (nilai 1 dalam elemen larik ke dua
telah dipindahkan ke larik baru)
langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik baru
yang dibuat sebelumnya.
{1, 2} <-> {3, 4, 9} dan {5}
{1, 2, 3} <-> {4, 9} dan {5}
{1, 2, 3, 4} <-> {9} dan {5}
{1, 2, 3, 4, 5} <-> {9} dan {null}
{1, 2, 3, 4, 5, 9} <-> {null} dan {null}
Persoalan : Misalnya diketahui table A yang berukuran n eleman sudah berisi nilai integer.
Kita ingin menentukan nilai minimum dan nilai maksimum sekaligus di dalam table tersebut.
Misalkan tabel A berisi elemen-elemen sebagai berikut :
Ide dasar algoritma secara Divide and Conquer :
Ukuran table hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan
maksimum dapat diselesaikan (SOLVE) secara lebih mudah. Dalam hal ini, ukuran kecil yang
dipilih adalah 1 elemen atau 2 elemen.
Algoritma MinMaks :
DIVIDE : Bagi dua table A secara rekursif menjadi dua bagian yang berukuran sama, yaitu
bagian kiri dan bagian kanan.
CONQUER : Terapkan algoritma Divide and Conquer untuk masing-masing bagian, dalam hal
ini min dan maks dari table bagian kiri dinyatakan dalam peubah min1 dan maks1, dan min
dan maks dari table bagian kanan dinyatakan dalam peubah min2 dan maks2.
COMBINE : Bandingkan min1 dan min2 untuk menentukan min table A, serta bandingkan
maks1 dan maks2 untuk menentukan maks table A.
var
a,b,n,i,tamp : integer;
procedure urut;
begin
for i:=1 to n do
begin
end;
{Pengurutan Data}
For a:=1 to n do
for b:=1 to a do
begin
tamp := data[a];
data[a] := data[b];
data[b] := tamp;
end;
For a:=1 to n do
write(data[a],' ');
readln;end;
begin
clrscr;
{Penginputan Data}
urut;
end.
Hasilnya:
B. RECURENCE
Rekurensi adalah suatu persamaan atau pertidaksamaan yang menguraikan fungsi dalam
suku-suku nilai input yang lebih kecil. ada tiga metode untuk menyelesaikan rekurensi, yaitu
untuk mendapatkan batas asymptotic "" atau "O" pada solusi. Ketiga metode tersebut
adalah metode iterasi, substitusi, metode master.
1. Metode Iterasi.
Metode iterasi mengkonversi rekurensi ke dalam jumlahan dan kemudian berdasarkan cara
untuk bounding summations untuk menyelesaikan rekurensi.
Contoh 1:
T(n) = c + T(n/2); Ganti n dengan n/2 diperoleh: T(n/2) = c + T(n/4) dan T(n/4) = c + T(n/8).
Kemudian masukkan ke formula diperoleh
T(n) = c + T(n/2)
= c + c + T(n/4) = c + c + T(n/8)
(lg(n))
Contoh 2:
T ( n) n 3T n / 4
n 3 n / 4 3T n /16
n 3 n / 4 3 n /16 3T n / 64
n 3 n / 4 9 n /16 27T n / 64
T ( n) n 3n / 4 9n /16 27 n / 64 ... 3log 4 n T (1)
log 4 n 1 i
3
n n
log 4 3
i 0 4
4n o( n)
O ( n)
Selain cara di atas ada cara yang lebih mudah, yaitu pohon rekursif:
T (n) T (n / 4) T (n / 2) n 2
T (n) T (n / 3) T (2n / 3) n
L
a
m
a
n
y
a
r
u
n
n
i
n
g
t
i
m
e
2. Metode subtitusi:
Dalam metode substitusi, kita perkirakan batasnya dan kemudian menggunakan induksi
matematik dibuktikan kebenaran perkiraan kita tersebut.
Contoh 1:
T(n) = 4T (n/2) + n
1.) anggap T(n) = O (3 )
2.) asumsi T() = C 3
3.) buktikan T(n) 3 dengan induksi
T(n) = 4T (n/2) + n
4 (/2)3 + n
= 2 3 +
= 3 (2 3 )
3 jika 2 dan 1
3. Metode Master
Metode master melengkapi batas-batas untuk rekurensi dari bentuk
T (n) aT (n / b) f (n) , dengan a 1, b 1, dan f (n) fungsi yang
diketahui; ini perlu diketahui/dipahami dan dihafal, karena sekali anda melakukan ini
penentuan batas asimtotis untuk rekurensi sederhana akan mudah. Metode master
merupakan salah satu metode penyelesaian running time dengan 3 cara berbeda
untuk 3 kasus yang berbeda pula.
Mengingat recurence yang diberikan T (n) aT (n / b) f (n) maka ada 3
kasus, yaitu:
Contoh 1:
1.
f (n) O n logb a
T (n) n logb a
2.
f (n) n logb a
T (n) n logb a lg n
3.
f (n) n logb a and af (n / b) cf (n), for some c 1, n n0
T ( n) f ( n)
Ketiga persamaan di atas tidak dapat menyelesaikan setiap recurence karena ada
perbedaan antara kasus 1 dan 2 serta kasus 2 dan 3.
log = log2 2
() =
T(n) = . lg
T(n) = 2 (2) + 2
b. Contoh ini menggunakan kasus 3.
T(n) = 2T (n/2) + 2
log = log2 2+1
() = 2
T(n) = (2 )