Pagini recente » Cod sursa (job #1279438) | Cod sursa (job #1848853) | Cod sursa (job #1748838) | Cod sursa (job #1829751) | Cod sursa (job #2983969)
#include <bits/stdc++.h>
int tmp[500005];
void mergesort(int v[], int left, int right)
{
if(left < right)
{
int m = (left + right) / 2;
mergesort(v, left, m);
mergesort(v, m+1, right);
int i = left, j = m+1, k = 0;
while(i <= m && j <= right)
{
if(v[i] < v[j])
tmp[k++] = v[i++];
else
tmp[k++] = v[j++];
}
while(i <= m)
tmp[k++] = v[i++];
while(j <= right)
tmp[k++] = v[j++];
for(i = left, j = 0; i <= right; i++, j++)
v[i] = tmp[j];
}
}
int main(){
int v[500005], n;
bool ok = true;
std::ifstream f1("algsort.in");
std::ofstream f2("algsort.out");
f1 >> n;
for(int i = 0; i < n; i++)
f1 >> v[i];
mergesort(v, 0, n-1);
for(int i = 0; i < n; i++)
f2 << v[i] << " ";
}