Mai intai trebuie sa te autentifici.
Cod sursa(job #2897675)
Utilizator | Data | 4 mai 2022 15:12:37 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.8 kb |
#include <iostream>
#include <fstream>
using namespace std;
int v[500001], aux[500001];
void mergSort(int s, int f)
{
if(f-s==1)
{
if( v[s] > v[f] )
swap(v[s],v[f]);
}
if(f-s>=2)
{
int piv= v[s];
int s1=s,f1=f;
for(int i=s;i<=f;i++)
if(v[i] < piv)
aux[s1++] = v[i];
else aux[f1--] = v[i];
for(int i=s;i<=f;i++)
v[i] = aux[i];
mergSort(s,s1-1);
mergSort(f1+1,f);///to do
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
f>>n;
for (int i=1;i<=n;i++)
f>>v[i];
mergSort(1,n);
for (int i=1;i<=n;i++)
g<<v[i]<<" ";
g.close();
f.close();
return 0;
}