Pagini recente » Cod sursa (job #1495859) | Cod sursa (job #486686) | Cod sursa (job #44610) | Cod sursa (job #1487182) | Cod sursa (job #2880615)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void merge_sort(vector<int> &v) {
int l = v.size();
if(l > 1) {
vector<int> st, dr;
for(int i = 0; i < l / 2; i++)
st.push_back(v[i]);
for(int i = l / 2; i < l; i++)
dr.push_back(v[i]);
merge_sort(st);
merge_sort(dr);
int i = 0, j = 0, k = 0;
while(i < st.size() && j < dr.size()) {
if(st[i] < dr[j])
v[k++] = st[i++];
else
v[k++] = dr[j++];
}
while(i < st.size()) {
v[k++] = st[i++];
}
while(j < dr.size()) {
v[k++] = dr[j++];
}
}
}
int main() {
int n, x;
f >> n;
vector<int> v;
for(int i = 0; i < n; i++) {
f >> x;
v.push_back(x);
}
merge_sort(v);
for(int x : v)
g << x << " ";
f.close();
g.close();
return 0;
}