Pagini recente » Cod sursa (job #1532931) | Cod sursa (job #3038868) | Cod sursa (job #1648792) | Istoria paginii runda/simulare_oji_2023_clasele_11_12_15_martiee/clasament | Cod sursa (job #1318090)
#include <fstream>
using namespace std;
void merge_sort(int* vect, int left, int right)
{
if (left >= right)
return;
int mid = (left + right) >> 1;
merge_sort(vect, left, mid);
merge_sort(vect, mid + 1, right);
int* coppy = new int[right + 1];
int cnt = left;
int i, j;
for (i = left, j = mid + 1; i <= mid || j <= right; )
if ((i <= mid && vect[i] < vect[j]) || (j > right))
coppy[cnt++] = vect[i++];
else
coppy[cnt++] = vect[j++];
for (i = left; i <= right; ++i)
vect[i] = coppy[i];
delete[] coppy;
}
int main()
{
ifstream in("algsort.in");
int N;
int i;
in >> N;
int* v = new int[N + 1];
for (i = 0; i < N; ++i)
in >> v[i];
in.close();
merge_sort(v, 0, N - 1);
ofstream out("algsort.out");
for (i = 0; i < N; ++i)
out << v[i] << " ";
out.close();
delete[] v;
return 0;
}