Pagini recente » Cod sursa (job #1628112) | Cod sursa (job #1870975) | Cod sursa (job #669590) | Cod sursa (job #1987740) | Cod sursa (job #3325623)
#include <iostream>
#include <fstream>
using namespace std;
int t[500001];
int temp[500001];
void fesu(int bal, int kozep, int jobb, int t[])
{
int idxbal = bal;
int idxjobb = kozep+1;
int idxtemp = 0;
while(idxbal <= kozep && idxjobb <= jobb){
if(t[idxbal] > t[idxjobb]){
temp[idxtemp] = t[idxjobb];
idxjobb++;
idxtemp++;
}
else{
temp[idxtemp] = t[idxbal];
idxbal++;
idxtemp++;
}
}
while(idxbal <= kozep){
temp[idxtemp] = t[idxbal];
idxtemp++;
idxbal++;
}
while(idxjobb <= jobb){
temp[idxtemp] = t[idxjobb];
idxtemp++;
idxjobb++;
}
for(int i = 0; i < idxtemp; i++){
t[i+bal] = temp[i];
}
}
void szort(int bal, int jobb, int t[])
{
if(bal >= jobb){
return;
}
else{
int kozep=(jobb+bal)/2;
szort(bal, kozep, t);
szort(kozep+1, jobb, t);
fesu(bal, kozep, jobb, t);
}
}
int main()
{
ifstream be("algsort.in");
ofstream ki("algsort.out");
int n;
be >> n;
for(int i = 0; i < n; i++){
be >> t[i];
}
szort(0, n - 1, t);
for(int i = 0; i < n; i++){
ki << t[i] << " ";
}
return 0;
}