Materi 7 Praktikum Struktur Data Program Studi Matematika / D3 Manajemen Informatika Universitas Syiah Kuala Dalam praktikum ini, anda diminta untuk mengimplementasikan program Merge Sort berikut ini. Perhatikan pernyataan baris per baris dan pahami maksudnya. Implementasi Algoritma Merge Sort (dikutip dari buku A book in C) Diskusikan dan pahami implementasi dari algoritma mergesort berikut ini. Bila sintak dan logik error ditemukan, mohon diperbaiki. #include <stdio.h> #include <stdlib.h> void mergesort(int key[],int n); void merge(int a[], int b[], int c[], int m, int n); int main(void){ int i, key[8]={12,10,45,11,9,23,4,17}; mergesort(key,8); for(i=0;i<8;++i){ printf("%d\t",key[i]); } return 1; } void mergesort(int key[], int n){ int j,k,m,*w; for (m=1;m<n;m*=2); if (m!=n) { printf("Jumlah arraynya salah "); exit(1); } w =calloc(n,sizeof(int)); assert(w!=NULL); for (k=1;k<n;k*=2){ for(j=0;j<n-k;j+=2*k) merge(key+j,key+j+k,w+j,k,k); for(j=0; j<n; ++j) key[j]=w[j]; } free(w); } Struktur Data - 2010 Dr. Taufik Fuadi Abidin, S.Si., M.Tech 1 http://www.informatika.unsyiah.ac.id/tfa void merge(int a[], int b[], int c[], int m, int n){ int i=0,j=0,k=0; while (i < m && j < n) if (a[i] < b[j]) c[k++] =a[i++]; else c[k++] =b[j++]; while (i<m) c[k++] =a[i++]; while (j<n) c[k++] =b[j++]; } --- all the best --- Struktur Data - 2010 Dr. Taufik Fuadi Abidin, S.Si., M.Tech 2 http://www.informatika.unsyiah.ac.id/tfa