Advertisement
bkit4s0

Untitled

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