Anda di halaman 1dari 5

Nama :

No MHS :

Kelas : Pra S2 B

Implementasikan ke3 algoritma Sorting untuk berbagai nilai n (banyak data), isikan data waktu
running nya pada Tabel berikut :

BANYAK DATA(n) WAKTU PROSES (detik)


MERGESORT QUICKSORT HEAPSORT
500.000 0.153 0.054 0.153
0.153 0.054 0.154
0.155 0.053 0.152
1.000.000 0.316 0.116 0.333
0.315 0.115 0.338
0.313 0.117 0.337
10.000.000 3.62 1.342 5.431
3.488 1.341 5.398
3.52 1.346 5.634
20.000.000 7.767 2.915 12.158
7.261 2.798 12.127
7.291 2.787 12.005
40.000.000 15.076 11.687 25.32
15.145 11.603 25.174
15.703 11.567 25.136
80.000.000 32.313 24.729 55.718
31.95 23.538 55.778
31.603 23.575 55.781
100.000.000 15.076 11.687 25.32
15.145 11.603 25.174
15.703 11.567 25.136
120.000.000 32.313 24.729 55.718
31.95 23.538 55.778
31.603 23.575 55.781
180.000.000 15.076 11.687 25.32
15.145 11.603 25.174
15.703 11.567 25.136
200.000.000 32.313 24.729 55.718
31.95 23.538 55.778
31.603 23.575 55.781

Catatan :

 Gunakan array dinamis untuk menyimpan n data integer random 1 s.d. 1.000.000.000
 Banyak data n (500 ribu, 1 juta, 10 juta, 20 juta, 40 juta dan 80 juta) masing-masing dilakukan 3x
percobaan
 Sebutkan spesifikasi komputer yang saudara gunakan
 Lampirkan listing program yang saudara gunakan
 Upload file word di elisa

 Spesifikasi Laptop yang digunakan :


Operating System : Windows 8.1 Pro 64-bit(6.3,Build 9600)
Language : Bahasa Indonesia
System Manufacturer : TOSHIBA
System Model : Satelite C 40-A
Bios : InsydeH20 Version 03,72,301,20
Processor : Intel® Core ™ i3-3110M CPU @ 2,40GHz (4 CPUs), ~2,4 GHz
Memory : 2048MB RAM
Page file : 2406MB used, 1541MB available
DirectX Version : DirectX 11
Pada Komputer ini di setting High Performance

 Listing Program yang digunakan :


#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
using namespace std;

long long c=0;


int *z,n,cc=0,p=0;

void buatdata(int *x,int &n)


{int i;
cout<<"banyak data :";cin>>n;
srand(time(NULL));
for (i=1;i<=n;i++) {
x[i]= rand()%1000000000+1;
cout<<x[i]<<" ";
}
cout<<endl;
cout<<endl;
}
void sortB(int *x,int n)
{int i,j,t ;
for (i=1;i<=n-1;i++)
for (j=1;j<=n-i;j++)
if (x[j]>x[j+1]) {t=x[j];x[j]=x[j+1];x[j+1]=t;}
}

void cetakdata(int *x,int n)


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

void partisi(int *x,int aw,int ak,int &id)


{ int i,j,t,pivot;
pivot=x[aw];j=aw;
for (i=aw+1;i<=ak;i++)
if (x[i]<pivot) {
j++;t=x[i];x[i]=x[j];x[j]=t;
}
x[aw]=x[j];x[j]=pivot;
id=j;
}
void qsort(int *x,int aw,int ak)
{int j;
if (aw<ak) {
partisi(x,aw,ak,j);
qsort(x,aw,j-1);
qsort(x,j+1,ak);
}
}

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


{
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(int *x,int aw,int ak)
{int mid;
if(aw<ak) {
mid =(aw+ak)/2;
mergesort(x,aw,mid);
mergesort(x,mid+1,ak);
merge(x,aw,mid,ak);
}
}

void MergeQuick(int *x,int aw,int ak)


{int mid;
if(ak-aw<1000) qsort(x,aw,ak);
else {
mid =(aw+ak)/2;
MergeQuick(x,aw,mid);
MergeQuick(x,mid+1,ak);
merge(x,aw,mid,ak);
}
}
void create_heap(int *a,int n)
{
int q,i,j,key;
for(q=2;q<=n;q++)
{
i=q;
key=a[i];
j=i/2;
while(i>1 && key>a[j])
{
a[i]=a[j];
i=j;
j=i/2;
if(j<1)
j=1;
}
a[i]=key;
}
}

void sort_heap(int *a,int n)


{
int q,i,j,key,temp;
create_heap(a,n);
for(q=n;q>=1;q--)
{
temp=a[1];
a[1]=a[q];
a[q]=temp;
i=1;
key=a[i];
j=2*i;
if(j+1 < q)
{
if(a[j+1] > a[j])
j++;
}
while(j<=q-1 && key<a[j])
{
a[i]=a[j];
i=j;
j=2*i;
if(j+1 < q)
{
if(a[j+1] > a[j])
j++;
}
else break;
}
a[i]=key;
}
}

main()
{ int i,j,*x;
cout<<"banyak data :";cin>>n;
x=new int[n+1]; //ARRAY DINAMIS
z=new int[n+1];
srand(time(NULL));
for (i=1;i<=n;i++) {
x[i]= rand()*rand()+1;
}
cout<<endl;
//cetakdata(x,n);
clock_t begin_time = clock();
//qsort(x,1,n);
//mergesort(x,1,n);
//sortB(x,n);
//MergeQuick(x,1,n);
sort_heap(x,n);
cout << float( clock () - begin_time )/CLOCKS_PER_SEC;
//cetakdata(x,n);
// cout<<"\n perbandingan = "<<p;
getch();
}

Anda mungkin juga menyukai