Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int N=100000;
  4. int a[N],b[N],n;
  5. void citire(){int i;cin>>n;
  6. for(i=1;i<=n;++i)cin>>a[i];}
  7. void Mergesort(int st,int dr){
  8. int m,i,j,k;
  9. if(st<dr){m=(st+dr)/2;
  10. Mergesort(st,m);
  11. Mergesort(m+1,dr);
  12. i=st;j=m+1;k=st-1;
  13. while(i<=m&&j<=dr)
  14. if(a[i]<a[j])b[++k]=a[i++];
  15. else b[++k]=a[j++];
  16. while(i<=m)b[++k]=a[i++];
  17. while(j<=dr)b[++k]=a[j++];
  18. for(i=st;i<=dr;++i)a[i]=b[i];}}
  19. void afisare(){int i;
  20. for(i=1;i<=n;++i)cout<<a[i]<<" ";}
  21. int main(){citire();
  22. Mergesort(1,n);
  23. afisare();
  24. return 0;}
  25. #include <iostream>
  26. using namespace std;
  27. const int N=100000;
  28. int a[N],b[N],n;
  29. void citire(){int i;cin>>n;
  30. for(i=1;i<=n;++i)cin>>a[i];}
  31. void Mergesort(int st,int dr){
  32. int m,i,j,k;
  33. if(st<dr){m=(st+dr)/2;
  34. Mergesort(st,m);
  35. Mergesort(m+1,dr);
  36. i=st;j=m+1;k=st-1;
  37. while(i<=m&&j<=dr)
  38. if(a[i]<a[j])b[++k]=a[i++];
  39. else b[++k]=a[j++];
  40. while(i<=m)b[++k]=a[i++];
  41. while(j<=dr)b[++k]=a[j++];
  42. for(i=st;i<=dr;++i)a[i]=b[i];}}
  43. void afisare(){int i;
  44. for(i=1;i<=n;++i)cout<<a[i]<<" ";}
  45. int main(){citire();
  46. Mergesort(1,n);
  47. afisare();
  48. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement