Advertisement
a53

Sort Heap

a53
Jan 16th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream f("heap_sort.in");
  4. ofstream g("heap_sort.out");
  5. int n, a[1000001];
  6.  
  7. void heapU(int a[],int n,int i)
  8. {
  9. int larg=i;
  10. int st=2*i+1,dr=2*i+2;
  11. if(st<n&&a[st]>a[larg])
  12. larg=st;
  13. if(dr<n&&a[dr]>a[larg])
  14. larg=dr;
  15. if(larg!=i)
  16. swap(a[i], a[larg]),heapU(a,n,larg);
  17. }
  18.  
  19. void heapSort(int a[],int n)
  20. {
  21. for(int i=n/2-1;i>=0;--i)
  22. heapU(a,n,i);
  23. for(int i=n-1;i>=0;--i)
  24. swap(a[0], a[i]),heapU(a,i,0);
  25. }
  26.  
  27. int main()
  28. {
  29. f>>n;
  30. for(int i=0;i<n;++i)
  31. f>>a[i];
  32. heapSort(a,n);
  33. for(int i=0;i<n;++i)
  34. g<<a[i]<<' ';
  35. return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement