Oleh :
Radivka Angga P 18201146
Aditya Satria M 18201005/P
Yuda Ilhami 18201300
Algoritma
Prinsip mendasar yang di gunakan pada algoritma merge sort sering
disebut atau mengikuti pola pecah belah dan taklukan (divide and conquer).
Pola divide and Conquer, adalah banyak diadopsi oleh beberapa alogirtma
yang pada dasarnya mengimplementasikan konsep rekursi (adalah cara untuk
menetapkan proses dengan dirinya sendiri) untuk memecahkan permasalahan.
Caranya adalah permasalahan utama dipecah menjadi sub-masalah, kemudian
solusi dari sub masalah akan di gabungkan untuk mendapatkan solusi dari
masalah utama.
void main()
{
cout<<"\n masukkan angka :"; //tampilkan angka yang diinginkan
cin>> n;
cout<<" angka :\n ";//tampilkan angkanya
for(i=0;i<n;i++)
cin>> a[i];
mergesort(a,0,n-1);
cout<<" \n data setelah di urutkan :";//data setelah diurutkan
for(i= 0; i<n ;i++)
cout<< a[i]<<" ";
getch();
}
mid=(i+j)/2;//membagi 2 bilangannya
mergesort(a,i,mid);
mergesort(a,mid+1,j);
merge(a,i,mid,j);
}
}
void merge(int a[],int low,int mid ,int high)
{
int h,i,j,k;
h=low;
i=low;
j=mid+1;
while(h<=mid && j<=high)
{
if(a[h]<=a[j])
b[i]=a[h++];
else
b[i]=a[j++];
i++;
}
if( h > mid)
for(k=j;k<=high;k++)
b[i++]=a[k];
else
for(k=h;k<=mid;k++)
b[i++]=a[k];
cout<<"\t";
for(k=low;k<=high;k++)//membandingkanj urutan dari yang rendah ke besar
{ a[k]=b[k];
cout<< a[k]<<"";
}
}
FLOWCHART