fork(3) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void merge(vector<int>& a,vector<int>&left,vector<int>&right)
  4. {
  5. int i=0,j=0,k=0;
  6. int nl=left.size(),nr=right.size();
  7. while((i<=nl)&&(j<=nr))
  8. {
  9. if(left[i]<right[j])
  10. a[k++]=left[i++];
  11. else
  12. a[k++]=right[j++];
  13. }
  14. while(i<=nl)
  15. a[k++]=left[i++];
  16. while(j<=nr)
  17. a[k++]=right[j++];
  18. }
  19. void mergesort(vector<int>& a)
  20. {
  21. if(a.size()<2)return;
  22. int h=a.size();
  23. int mid=h/2;
  24. vector<int>left;
  25. vector<int>right;
  26. for(int i=0;i<mid;i++)left[i];
  27. for(int i=mid;i<a.size();i++)right[i-mid]=a[i];
  28. mergesort(left);
  29. mergesort(right);
  30. merge(a,left,right);
  31. }
  32. int main() {
  33. // your code goes here
  34. vector<int>a;
  35. for(int i=0;i<6;i++)
  36. a[i]=(i*2+(i+1)*4)+5;//just for taking random numbers doesn't make any sense;
  37. mergesort(a);
  38. for(int i=0;i<a.size();i++)cout<<a[i]<<" ";
  39. return 0;
  40. }
Runtime error #stdin #stdout 0s 3136KB
stdin
Standard input is empty
stdout
Standard output is empty