Menurut Wikipedia 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.Prinsip utama yang diimplementasikan pada algoritma
urut gabung seringkali disebut sebagai pecah-belah dan taklukkan (bahasa
Inggris:divide and conquer). Cara kerja algoritma urut gabung adalah membagi
larik data yang diberikan menjadi dua bagian yang lebih kecil. Kedua larik yang
baru tersebut kemudian akan diurutkan secara terpisah. Setelah kedua buah list
tersusun, maka akan dibentuk larik baru sebagai hasil penggabungan dari dua
buah larik sebelumnya. Menurut keefektifannya, alogaritma ini bekerja dengan
tingkat keefektifan O(nlog(n))
Sumber:Wikipedia
------------------------------------------------------------------------------------------------------------
Contoh Sintax Merge Sort Dengan C++:
#include <iostream>
using namespace std;
int bagus[100];
void mergeSort(int awal, int mid, int akhir)
{
cout<<endl;
int temp[100], tempAwal = awal, tempMid = mid, i = 0;
while(tempAwal < mid && tempMid < akhir)
{
if(bagus[tempAwal] < bagus[tempMid])
temp[i] = bagus[tempAwal],tempAwal++;
else
temp[i] = bagus[tempMid],tempMid++;
i++;
}
while(tempAwal < mid)
temp[i] = bagus[tempAwal],tempAwal++,i++;
while(tempMid < akhir)
temp[i] = bagus[tempMid],tempMid++,i++;
for(int j=0,k=awal;j<i,k<akhir;j++,k++)
cout<<bagus[k]<<' '<<temp[j]<<endl, bagus[k] = temp[j];
}
void merge(int awal, int akhir)
{
if(akhir-awal != 1)
{
int mid = (awal+akhir)/2;
merge(awal, mid);
merge(mid, akhir);
mergeSort(awal, mid, akhir);
}
}
int main()
{
int n;
cout<<"Masukan banya data = ";cin>>n;
for(int i=0;i<n;i++){
cout<<"Masukan data yang akan di susun = ";
cin>>bagus[i];
}
merge(0,n);
for(int i=0;i<n;i++)
cout<<bagus[i]<<' ';
return 0;
}
==SELAMAT MENCOBA==
Sip
ReplyDelete