Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //this is mergesort version of tham tro / tham bien
- #include<stdio.h>
- // start array with index 0 (l=0,r=number elements of array -1)
- void mergesort(int *a,int l,int r){
- int i,j,k,m;
- int *b,*c;
- if(r-l>0) {
- m=(r+l)/2;
- mergesort(a,l,m);
- mergesort(a,m+1,r);
- for (int i = m; i >= l; i--)
- *(b+i)=*(a+i); //how to use reference parameter to return in void methods
- for (int j = m+1; j <= r; j++)
- *(c+i)=*(a+i);
- i=0;
- j=0;
- for (int k = 0; k <= r; k++) {
- if(*(b+i)<*(c+i))
- *(a+k) = *(b+(i++));
- else
- *(a+k) = *(c+(j++));
- }
- }
- }
- int main(int argc, char const *argv[])
- {
- int a[8] = {5,4,1,8,7,2,6,3};
- mergesort(a,0,7);
- for (int i = 0; i < 7; i++)
- {
- printf("%d\n", a[i]);
- /* code */
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement