Cod sursa(job #2912218)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 7 iulie 2022 13:48:13
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda 17_iulie Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int i, j, n, m, c, p, v[500005];
int main() {
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>v[i];
    }
    for(i=2;i<=n;i++){
        j=i;
        while(j>1 && v[j]>v[j/2]){
            swap(v[j], v[j/2]);
            j/=2;
        }
    }
    for(i=n;i>=2;i--){
        swap(v[i], v[1]);
        p=1;
        c=2;
        while(c<=i-1){
            if(c+1<=i-1 && v[c+1]>v[c])
                c++;
            if(v[c]>v[p])
                swap(v[c], v[p]);
            else
                break;
            p=c;
            c=2*p;
        }
    }
    for(i=1;i<=n;i++)
        cout<<v[i]<<" ";


}