Anda di halaman 1dari 8

Tugas 3 Algoritma dan Struktur Data

MERGE SORT DAN RECURRENCE

NAMA NIM KELAS

: : :

NURUL MUTHIAH H 121 11 252 STATISTIKA B

PRODI STATISTIKA JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS HASANUDDIN MAKASSAR 2012

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 Divide : membagi persoalan menjadi beberapa sub-masalah yang memiliki kemiripan dengan persoalan semula namun berukuran lebih kecil (idealnya berukuran hampir sama). Conquer : memecahkan (menyelesaikan) masing-masing sub-masalah secara rekursif.

Combine : mengabungkan atau mengkombinasikan solusi masing-masing sub-masalah sehingga membentuk solusi persoalan semula.

Example 80 25 65 40 20 30 95 50

80

25

65

40

20

30

95

50

80

25

65

40

20

30

95

50

80

25

65

40

20

30

95

50

25

80

40

65

20

30

50

95

25

80

40

65

20

30

50

95

20

25

30

40

50

65

80

95

divide

combine

conquer

Berikut algoritma merge sort. void mergeSort(Object array[], int startIdx, int endIdx) { if (array.length != 1) { //Membagi rangkaian data, rightArr dan leftArr mergeSort(leftArr, startIdx, midIdx); mergeSort(rightArr, midIdx+1, endIdx); combine(leftArr, rightArr); } }

Berikut adalah contoh implementasi merge sort dengan menggunakan Java. public class mergeSort{ public static void main(String a[]){ int i; int array[] = {12,9,4,99,120,1,3,10}; System.out.println("\n\n RoseIndia\n\n"); System.out.println(" Selection Sort\n\n"); System.out.println("Values Before the sort:\n"); for(i = 0; i < array.length; i++) System.out.print( array[i]+" System.out.println(); mergeSort_srt(array,0, array.length-1); System.out.print("Values after the sort:\n"); for(i = 0; i <array.length; i++) System.out.print(array[i]+" System.out.println(); System.out.println("PAUSE"); } public static void mergeSort_srt(int array[],int lo, int n){ int low = lo; int high = n; if (low >= high) { return; } "); ");

int middle = (low + high) / 2; mergeSort_srt(array, low, middle); mergeSort_srt(array, middle + 1, high); int end_low = middle; int start_high = middle + 1; while ((lo <= end_low) && (start_high <= high)) { if (array[low] < array[start_high]) { low++; } else { int Temp = array[start_high]; for (int k = start_high- 1; k >= low; k--) { array[k+1] = array[k]; } array[low] = Temp; low++; end_low++; start_high++; } } } }

Output dari program di atas. C:\array\sorting>javac mergeSort.java C:\array\sorting>java mergeSort RoseIndia Selection Sort Values Before the sort: 12 1 9 3 4 4 99 9 120 12 1 3 10 120 Values after the sort: 10 99 PAUSE C:\array\sorting>_

RECURRENCE

RecuRrence merupakan persamaan atau pertidaksamaan yang menjelaskan sebuah fungsi yang bernilai lebih kecil dari inputnya. Cara menyelesaikan reccurence terbagi 3, yaitu sebagai berikut. 1. Metode Substitusi Metode ini digunakan dengan cara menebak solusi kemudian dibuktikan dengan induksi matematikanya. Example a. Selesaikan ( ) Jawab: Misalkan gunakan tebakan ( ( ) ( ) ( ) ( ) ( ) ( ) ) ( ) jika ( ) !

( )

yang berlaku untuk

Example b. Buktikan bahwa ( ) Jawab: 1) Buat tebakan ( ) ( ) berarti ( ) ( ) jika diketahui ( ) ( ) ( )

2) Bukti dengan induksi matematika. Basis induksi: ( ) Langkah induksi: ( ) ( ) ( (

benar untuk

2.

Metode Iterasi atau Pohon Rekursif Metode ini digunakan dengan cara mengubah bentuk rekursif menjadi bentuk penjumlahan, kemudian diselesaikan dengan menggambar pohon rekursifnya. Metode iterasi juga sering kali digunakan untuk menghasilkan tebakan untuk metode substitusi

Example. ( ) ( ) ( ( ( ) ( ) ( ) ( ( ( ) )) ( ( ))) ) ( )

Example for recursion tree. ( ) ( ) ( )

( )

( )

( )

3.

Metode Master Metode ini digunakan untuk menyelesaikan persamaan rekursif dalam bentuk ( ) ( )

( ). Dalam metode master ini, tedapat tiga kasus umum yaitu sebagai berikut. (
( )

Jika ( ) Example.

), di mana

, maka ( )

Selesaikan ( ) Jawab: Pada bentuk ini, ( ) (

( )

( ) ) dimana ( )

sehingga,

Jadi solusinya, ( )

Jika ( ) Example.

), maka

( )

Selesaikan ( ) Jawab: Pada bentuk ini,

sehingga,

Jadi solusinya, ( )

Jika ( )

( )

( ( ( ))

), di mana

dan

( )

( ) untuk

, maka

Example. Selesaikan ( ) Jawab: Pada bentuk ini, ( ( ) ( ( ) Jadi solusinya, ( ) ( ) ) ( ) ) sehingga, karena, ( ) !