Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Annisa Dwi Putri : 19/439132/PA/18955

Arta Aprilia : 19/445605/PA/19429

#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
typedef int larik[250001];
int n =0;

void buatdata(larik x,int &n)


{int i;
cout<<"banyak data : ";cin>>n;
for (i=1;i<=n;i++) {
cout<<"Input data ke "<<i<< " : ";cin>>x[i];
}
cout<<endl;
}

void cetakdata(larik x,int n)


{int i;
for (i=1;i<=n;i++) {
cout<<x[i]<<" ";
}
cout<<endl;
cout<<endl;getch();
}

void merge(larik x, int aw,int mid,int ak)


{larik z;
int i,j,k,l;
i=aw; j=mid+1; k=aw;
do {
if(x[i]<=x[j]) {z[k]=x[i];i++;}
else {z[k]=x[j];j++;}
k++;}
while ((i<=mid) && (j<=ak));
if (i>mid) for (l=j;l<=ak;l++) {z[k]=x[l];k++;}
else for (l=i;l<=mid;l++) {z[k]=x[l];k++;}
for (k=aw;k<=ak;k++) x[k]=z[k];
}

void mergesort(larik x,int aw,int ak)


{int mid;
if(aw<ak) {
mid =(aw+ak)/2;
mergesort(x,aw,mid); //rekursif
mergesort(x,mid+1,ak);//rekursif
merge(x,aw,mid,ak);
}
}

main()
{ int i,j;
larik x;
buatdata(x,n);
cout<<endl;
cout<<"Data sebelum disorting"<<endl;
cetakdata(x,n);
mergesort(x,1,n);
cout<<"Data setelah disorting"<<endl;
cetakdata(x,n);
getch();
}
Contoh setelah di run

You might also like