Advertisement
niamulhasan

Merge Sort (Error)

Jun 2nd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3.  
  4.  
  5. void mergeSort(int A[], int p, int r){
  6.     if(p<r){
  7.         int q = (p+r)/2;
  8.         mergeSort(A, p, q);
  9.         mergeSort(A, (q+1), r);
  10.         merge(A, p, q, r);
  11.     }
  12. }
  13.  
  14. void merge(int A[], int p, int q, int r){
  15.     int n1 = q - p + 1;
  16.     int n2 = r - q;
  17.  
  18.     int L[n1+1], R[n2+1];
  19.     int i;
  20.  
  21.     for(i=1; i<=n1; i++){
  22.         L[i] = A[p+i-1];
  23.     }
  24.  
  25.     int j;
  26.     for(j=1; j<=n2; j++){
  27.         R[j] = A[q+j];
  28.     }
  29.  
  30.     L[n1+1] = 600;
  31.     R[n2+1] = 600;
  32.  
  33.     i = 1;
  34.     j = 1;
  35.  
  36.     int k;
  37.     for(k=p; k<=r; k++){
  38.         if(L[i] <= R[j]){
  39.             A[k] = L[i];
  40.         }
  41.         else{
  42.             A[k] = R[j];
  43.         }
  44.     }
  45. }
  46.  
  47. int main(){
  48.     int A[5] = {5,8,6,3,7};
  49.     margeSort(A, 1, 5);
  50.  
  51.     int x = 0;
  52.     for(x=0; x<=5; x++){
  53.         printf(" %d ", A[x]);
  54.     }
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement