Sh3ll
OdayForums


Server : Apache
System : Linux profile 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64
User : apache ( 48)
PHP Version : 8.0.28
Disable Function : NONE
Directory :  /var/www/html/bibhas.ghoshal/Data_Structures_2022/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/html/bibhas.ghoshal/Data_Structures_2022/mergesort.c
//
//  mergesort.c
//  
//
//  Created by Bibhas Ghoshal on 04/06/22.
//

#include <stdio.h>

int main()
{
    int data[100],i,j,n,temp;
    
    /* Read N */
    
    printf("Give n:");
    scanf("%d",&n);
    printf("\n n = %d \n",n);
    
    for(i=0; i<n; i++)
        scanf("%d",data+i);
    
    printf("\n numbers read are:");
    
    for(i=0; i<n; i++){
        printf("%d",*(data+i));
        printf("\n");
    }
    
   /* Call mergesort */
    
    mergesort(data,0,n-1);
    
  /* print result */
    printf("\n Sorted numbers are:");
    
    for(i=0; i<n; i++){
        printf("\n %d",data[i]);}
        //printf("\n");}
     printf("\n");
}

int mergesort(a,i,j)
int a[],i,j;
{
    int k,mid;
    printf(" Entered with i=%d and j=%d\n",i,j);
    if( i>=j) return 0; // one element in the list
    mid = (i+j)/2;  // splitting point
    mergesort(a,i,mid);
    mergesort(a,mid+1,j);
    merge(a,i,j);
}
    
merge(a,i,j)
int a[],i,j;
{
    int k,b[100],mid,l,start;
/* Intialize */
    
    start = i;
    mid = (i+j)/2;
    k = mid+1;
    l = i;
    
/* form Array b */

    while(i<=mid && k<=j)
      if(a[i] >= a[k])
          b[l++] = a[i++];
       else
           b[l++] = a[k++];
    
    if(i>mid)
        for(;k<=j;) b[l++] = a[k++];
    else
     if(k>j)
        for(;i<=mid;) b[l++] = a[i++];
    
    /* Copy back to array a */
    
    for(l=start;l<=j;l++) a[l] = b[l];
}
    
    


ZeroDay Forums Mini