Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream f("heap_sort.in");
- ofstream g("heap_sort.out");
- int n, a[1000001];
- void heapU(int a[],int n,int i)
- {
- int larg=i;
- int st=2*i+1,dr=2*i+2;
- if(st<n&&a[st]>a[larg])
- larg=st;
- if(dr<n&&a[dr]>a[larg])
- larg=dr;
- if(larg!=i)
- swap(a[i], a[larg]),heapU(a,n,larg);
- }
- void heapSort(int a[],int n)
- {
- for(int i=n/2-1;i>=0;--i)
- heapU(a,n,i);
- for(int i=n-1;i>=0;--i)
- swap(a[0], a[i]),heapU(a,i,0);
- }
- int main()
- {
- f>>n;
- for(int i=0;i<n;++i)
- f>>a[i];
- heapSort(a,n);
- for(int i=0;i<n;++i)
- g<<a[i]<<' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement