Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
4Activity
0 of .
Results for:
No results containing your search query
P. 1
Tugas Algoritma

Tugas Algoritma

Ratings: (0)|Views: 490 |Likes:
Published by Kirito

More info:

Published by: Kirito on Oct 08, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

04/21/2013

pdf

text

original

 
Nama : Muh.RizalNim : H12111274Mata Kuliah : Algoritma dan Struktur Data
MERGE-SORT dan SOLVING RECURRENCES1.
 
MERGE-SORT
Merge sort 
merupakan algoritma pengurutan dalamilmu komputeryang dirancanguntuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yangterlalu besar. Algoritma ini ditemukan oleh John von Neumann pada tahun 1945.
Sebelum mendalami algoritma merge sort, mari kita mengetahui garis besar dari konsepdivide and conquer karena merge sort mengadaptasi pola tersebut.
 
Pola Divide and Conquer 
Beberapa algoritma mengimplementasikan konsep rekursi untuk menyelesaikan permasalahan.Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi dari submasalah akan membimbing menuju solusi permasalahan utama.Pada setiap tingkatan rekursi, pola tersebut terdiri atas 3 langkah.
Divide
Memilah masalah menjadi sub masalah
Conquer
Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup ringkas dan sederhana, pendekatan penyelesaian secara langsungakan lebih efektif.
Kombinasi
Mengkombinasikan solusi dari sub-masalah, yang akan membimbingmenuju penyelesaian atas permasalahan utama.
Memahami Merge Sort 
Seperti yang telah dijelaskan sebelumnya, Merge sort menggunakan pola divide andconquer. Dengan hal ini deskripsi dari algoritma dirumuskan dalam 3 langkah berpola divide
and
conquer. Berikut menjelaskan langkah kerja dari Merge sort.1.
 
DivideMemilah elemen
elemen dari rangkaian data menjadi dua bagian.2.
 
ConquerConquer setiap bagian dengan memanggil prosedur merge sort secara rekursif 
 
3.
 
KombinasiMengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian databerurutanProses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akandiurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakanbahwa bagian tersebut telah terurut sesuai rangkaian.
Menurut keefektifannya, alogaritmaini bekerja dengan tingkat keefektifanO(n log(n)).
 Algoritma
Pseudocode
Merge-Sort :
 
Merge-Sort 
(A, p, r):
if 
p < r
then
 
q ← (p+r)/2
 
Merge-Sort 
(A, p, q)
Merge-Sort 
(A, q+1, r)
Merge
(A, p, q, r)Algoritma
Merge-Sort 
pada pemrograman java :
void mergeSort(Object array[], int startIdx, int endIdx) {if (array.length != 1) {//Membagi rangkaian data, rightArr dan leftArrmergeSort(leftArr, startIdx, midIdx);mergeSort(rightArr, midIdx+1, endIdx);combine(leftArr, rightArr);}}
Misalkan
Rangkaian data:5 4 2 9
 
Membagi rangkaian menjadi dua bagian:LeftArr RightArr5 4 8 9Membagi LeftArr menjadi dua bagian:LeftArr RightArr5 4Mengkombinasikan4 5Membagi RightArr menjadi dua bagian:LeftArr RightArr2 9Mengkombinasikan2 9Mengkombinasikan LeftArr dan RightArr.2 4 5 9Berikut Contoh program
Merge-Sort 
pada pemrograman Java :
package merge_sort;public class merge_sort {public static void main(String[] args) {int i;int array[] = {
 
34,6,8,98,100,5,3,15};System.out.print("nilai sebelum:\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("setelah sorting:\n");for(i = 0; i <array.length; i++)System.out.print(array[i]+" ");System.out.println();

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->