Pagini recente » Cod sursa (job #2804819) | Cod sursa (job #2343768) | Cod sursa (job #1917623) | Cod sursa (job #2053420) | Cod sursa (job #1520859)
// algsort
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
vector<int> P;
vector<int> V;
void read() {
f>>n;
for (int i=1;i<=n;i++) {
int x; f>>x;
V.pb(x);
}
}
int sortare(int left, int right) {
P.resize(0);
int mij = (left+right)/2;
int i, j;
for (i=left, j=mij+1; i <= mij && j <= right;) {
if (V[i] < V[j]) {
P.pb(V[i]);
i++;
} else {
P.pb(V[j]);
j++;
}
}
for (;i <= mij;i++)
P.pb(V[i]);
for (;j <= right;j++)
P.pb(V[j]);
int p = 0;
for (i=left; i<=right;i++) {
V[i] = P[p];
p++;
}
}
void divide(int left, int right) {
if (left < right) {
int mij = (left+right)/2;
divide(left, mij);
divide(mij+1, right);
sortare(left, right);
}
}
void output() {
for (unsigned i=0;i<V.size();i++) {
g<<V[i]<<' ';
}
}
int main() {
read();
divide(0,n-1);
output();
f.close(); g.close();
return 0;
}