fork download
  1. #include <iostream>
  2. using namespace std;
  3. void merge(int a[],int left[],int right[])
  4. {
  5. int nl=sizeof(left)/sizeof(left[0]);
  6. int nr=sizeof(right)/sizeof(right[0]);
  7. int i=0,j=0,k=0;
  8. while((i<=nl)&&(j<=nr))
  9. {
  10. if(left[i]<=right[j])
  11. a[k++]=left[i++];
  12. else
  13. a[k++]=right[j++];
  14. }
  15. while(i<=nl)
  16. a[k++]=left[i++];
  17. while(j<=nr)
  18. a[k++]=right[i++];
  19. }
  20. void mergesort(int a[])
  21. {
  22. int n=sizeof(a)/sizeof(a[0]);
  23. if(n<2)return;
  24. int mid=n/2;
  25. int left[mid+1],right[n-mid+1];
  26. for(int i=0;i<mid;i++)left[i]=a[i];
  27. for(int j=mid;j<n;j++)right[j-mid]=a[j];
  28. mergesort(left);
  29. mergesort(right);
  30. merge(a,left,right);
  31. }
  32. int main() {
  33. // your code goes here
  34. int a[]={6,8,9,1,2};
  35. mergesort(a);
  36. for(int i=0;i<5;++i)cout<<a[i]<<" ";
  37. return 0;
  38. }
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
6 8 9 1 2