Thursday, 1 May 2014

Merge Sort C Program

                               /*Merge Sort By C Program created By Prashant Shinde*/
MERGE SORT:-
#include<stdio.h>
#include<conio.h>
int A[10];
void msort(int,int);
void combine(int,int,int);
void input(int);
void display(int);
void main()
{
 int n;
 clrscr();
 printf("Enter the no. of element=");
 scanf("%d",&n);
 input(n);
 msort(0,n-1);
 printf("\nThe sortted list is:-\n");
 display(n);
 getch();
}
void input(int n)
{
 int i;
 for (i=0;i<n;i++)
 {
  printf("enter a value=");
  scanf("%d",&A[i]);
 }
}
void display(int n)
{
  int i;
 for (i=0;i<n;i++)
 {
  printf("A[%d]=%d\n",i,A[i]);
 }
}
void msort(int L,int H)
{
  int m;
  if(L<H)
  {
   m=(L+H)/2;
   msort(L,m);
   msort(m+1,H);
   combine(L,m,H);
  }
}
void combine(int L,int m,int H)
{
 int i=L,j=m+1,k=L,t[10];
 while(i<=m&&j<=H)
 {
  if(A[i]<A[j])
  {
   t[k]=A[i];
   i++;
   k++;
  }
  else
  {
   t[k]=A[j];
   j++;
   k++;
  }
 }
 while(i<=m)
 {
   t[k]=A[i];
   i++;
   k++;
 }
  while(j<=H)
 {
   t[k]=A[j];
   j++;
   k++;
 }
 for(k=L;k<=H;k++)
 {
  A[k]=t[k];
 }
}
OUTPUT:-
Enter the no. of element=5
enter a value=789
enter a value=123
enter a value=456
enter a value=258
enter a value=100

The sortted list is:-
A[0]=100
A[1]=123
A[2]=258
A[3]=456
A[4]=789


No comments:

Post a Comment