Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

my mergesort program does not perform sort what is the error i could not get it?

$
0
0
    void merge(int L[],int R[],int A[]){
        int nL=sizeof(L)/sizeof(L[0]);
        int nR=sizeof(R)/sizeof(R[0]);
        int i=0,j=0,k=0;
        while(i<nL && j<nR){
            if(L[i]<=R[j]){
                A[k]=L[i];
                i++;}
                else{
                    A[k]=R[j];
                    j++;
                }
                k++;
        }
        while(i<nL){
            A[k]=L[i];
            i++;
            k++;
        }
        while(j<nR){
            A[k]=R[j];
            j++;
            k++;
            }
    }
    void mergeSort(int A[]){
        int n=sizeof(A)/sizeof(A[0]);
        if(n<2)
            return;
        int mid=n/2;
        int left[mid];
        int right[n-mid];
        for(int i=0;i<mid;i++)
         {
            left[i]=A[i];
         }
        for(int i=mid;i<n;i++){
            right[i-mid]=A[i];
        }

        mergeSort(left);
        mergeSort(right);
        merge(left,right,A);

}

void printArray(int *A,int size){ for(int i=0;i<size;i++){ cout<<A[i]<<endl; }}


Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>