1. #include <iostream.h>  
  2. #include <conio.h>  
  3. int a[50];  
  4. void merge(int,int,int);  
  5. void merge_sort(int low,int high)  
  6. {  
  7.  int mid;  
  8.  if(low<high)  
  9.  {  
  10.   mid=(low+high)/2;  
  11.   merge_sort(low,mid);  
  12.   merge_sort(mid+1,high);  
  13.   merge(low,mid,high);  
  14.  }  
  15. }  
  16. void merge(int low,int mid,int high)  
  17. {  
  18.  int h,i,j,b[50],k;  
  19.  h=low;  
  20.  i=low;  
  21.  j=mid+1;  
  22.  while((h<=mid)&&(j<=high))  
  23.  {  
  24.   if(a[h]<=a[j])  
  25.   {  
  26.    b[i]=a[h]; h++;  
  27.   }  
  28.   else  
  29.   {  
  30.    b[i]=a[j]; j++;  
  31.   } i++;  
  32.  }  
  33.  if(h>mid)  
  34.  {  
  35.   for(k=j;k<=high;k++)  
  36.   {  
  37.    b[i]=a[k]; i++;  
  38.   }  
  39.  }  
  40.  else  
  41.  {  
  42.   for(k=h;k<=mid;k++)  
  43.   {  
  44.    b[i]=a[k]; i++;  
  45.   }  
  46.  }  
  47.  for(k=low;k<=high;k++)  
  48.   a[k]=b[k];  
  49. }  
  50. void main()  
  51. {  
  52.  int num,i; cout<<"******************************************************************* *************"<<endl;  
  53.  cout<<" MERGE SORT PROGRAM "<<endl;  
  54.  cout<<"******************************************************************* *************"<<endl;  
  55.  cout<<endl<<endl;  
  56.  cout<<"Masukkan Banyak Bilangan: ";cin>>num;  
  57.    cout<<endl;  
  58.  cout<<"Sekarang masukkan "<< num <<" Bilangan yang ingin Diurutkan :"<<endl;  
  59.  for(i=1;i<=num;i++)  
  60.  {  
  61.   cout<<"Bilangan ke-"<<i<<" ";cin>>a[i] ;  
  62.  }  
  63.  merge_sort(1,num);  
  64.  cout<<endl;  
  65.  cout<<"Hasil akhir pengurutan :"<<endl;  
  66.  cout<<endl;  
  67.  for(i=1;i<=num;i++)  
  68.   cout<<a[i]<<" ";  
  69.  cout<<endl<<endl<<endl<<endl;  
  70.    getch();  

Comments (1)

On April 11, 2016 at 7:26 AM , Unknown said...

maksud dari mid, low, dan high itu apa ya? terimakasih