c - trying this merge sort... but it's not working... can anyone find the error? -


i'm having problem c program perform merge sort on user-defined array. when run program, it's taking array input, abruptly stops after , shows error 255. algorithm mycodeschool.org. here's code:

#include<stdio.h> #include<stdlib.h> void merge(int *a, int *left,int *right,int n, int ln, int rn) { int i,j,k; i=j=k=0; while(i<ln&&j<rn) {     if(left[i]<=right[j])     {         a[k]=left[i];         i++;     }     else     {         a[k]=right[j];         j++;     }     k++; } while(i<ln) {     a[k]=a[i];     k++; i++; } while(j<rn) {     a[k]=a[j];     k++; j++; }  } void mergesort(int *a, int n) // partition { int mid,i,*left,*right; if(n<=1)   return; mid=n/2; left=(int *)malloc(sizeof(int)*mid); right=(int *)malloc(sizeof(int)*(n-mid)); for(i=0;i<mid;i++)   left[i]=a[i]; for(i=mid;i<n;i++);   right[i-mid]=a[i]; mergesort(left,mid); mergesort(right,(n-mid)); merge(a,left,right,n,mid,n-mid); } int main() { int *a,n,i; printf("enter size of array: \t"); scanf("%d",&n); a=(int *)malloc(sizeof(int)*n); printf("\nenter array elements :\n"); for(i=0;i<n;i++)   scanf("%d",(a+i)); mergesort(a,n); printf("the sorted array is:\n"); for(i=0;i<n;i++)   printf("%d",*(a+i)); return 0; } 

shoud be

while(i<ln) {     a[k]=left[i];     k++; i++; } while(j<rn) {     a[k]=right[j];     k++; j++; } 

and

for(i=mid;i<n;i++); 

remove ;


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -