Friday, August 31, 2012

C Program for Merge Sorting

#include<iostream.h>
#include<conio.h>
int x[10],z[10];
void mergesort(int lb,int m,int ub)
{
int k=0;int j=lb;int i=m+1;
while(j<=m)
{
 while(i<=ub)
 {
  if(x[j]>x[i])
  {
   z[k]=x[i];
   i++;k++;
  }
  else
  {
   z[k]=x[j];
   j++;k++;
   break;
  }
  if(j>m)
  break;
 }
  if(i>ub)
  break;
}
while(i<=ub)
{
 z[k]=x[i];
 i++;
 k++;
}
while(j<=m)
{
 z[k]=x[j];
 j++;
 k++;
}
cout<<"\nAfter Merging\n";
for(j=lb,i=0;j<=ub;i++,j++)
{
 x[j]=z[i];
 cout<<" "<<x[j];
}
}void merge(int lb,int ub)
{
  int m=(lb+ub)/2;
  if(lb<ub)
  {
   merge(lb,m);
   merge(m+1,ub);
   mergesort(lb,m,ub);
  }
}
void main()
{
cout<<"Program on Merge Sorting\n";
cout<<"Enter Size";
int s;
cin>>s;
cout<<"Enter ";
for(int i=0;i<s;i++)
{
 cin>>x[i];
}
merge(0,s-1);
cout<<"\nFinally Sorted Array\n";
for(i=0;i<s;i++)
{
 cout<<" "<<x[i];
}
getch();
}

No comments:

Post a Comment