Advertisement
bkit4s0

Untitled

Aug 31st, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.68 KB | None | 0 0
  1. #include<stdio.h>
  2. // start array with index 0 (l=0,r=number elements of array -1)
  3. void mergesort(int *a[],int l,int r){
  4.     int i,j,k,m;
  5.     int b[r+1],c[r+1];
  6.     if(r-l>0) {
  7.         m=(r+l)/2;
  8.         mergesort(a,l,m);
  9.         mergesort(a,m+1,r);
  10.         for (int i = m; i >= l; i--)
  11.             b[i]=a[i];  //how to use reference parameter to return in void methods
  12.         for (int j = m+1; j <= r; j++)
  13.             c[j]=a[j];
  14.         i=0;
  15.         j=0;
  16.         for (int k = 0; k <= r; k++) {
  17.             if(b[i]<c[j])
  18.                 a[k] = b[i++];
  19.             else
  20.                 a[k] = c[j++];
  21.         }
  22.     }
  23. }
  24. int main(int argc, char const *argv[])
  25. {
  26.     int a[] = {5,4,1,8,7,2,6,3};
  27.     mergesort(&a,0,7);
  28.     for (int i = 0; i < 7; i++)
  29.     {
  30.         printf("%d\n", a[i]);
  31.         /* code */
  32.     }
  33.     return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement