Mai intai trebuie sa te autentifici.
Cod sursa(job #2237630)
| Utilizator | Data | 2 septembrie 2018 14:27:16 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.81 kb |
#include <bits/stdc++.h>
using namespace std;
int v[500001];
int aux[500001];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void interclasare(int n, int m, int i1, int i2 ){
int i = i1, j = i2, k = i1;
while(i <= n && j <= m){
if(v[i] <= v[j]) aux[k++] = v[i++];
else aux[k++] = v[j++];
}
while(i <= n) aux[k++] = v[i++];
while(j <= m) aux[k++] = v[j++];
for(int i = i1; i <= m; ++i) v[i] = aux[i];
}
void quicksortt(int st, int dr){
int mij = (st + dr) / 2;
if(dr - st <= 0) return ;
quicksortt(st, mij);
quicksortt(mij + 1, dr);
interclasare(mij, dr, st, mij + 1);
}
int main() {
int n;
fin >> n;
for(int i = 1; i <= n; ++i){
fin >> v[i];
}
quicksortt(1, n);
for(int i = 1; i <= n; ++i) fout << v[i] << " " ;
return 0;
}