Pagini recente » Cod sursa (job #3294555) | Cod sursa (job #2741294) | Cod sursa (job #3191429) | Atasamentele paginii Clasament 666-69 | Cod sursa (job #2529974)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int len, v[500001], w[500001];
void iclas(int st, int mid, int dr){
int i=st;
int j=mid+1;
w[0]=st-1;
while(i <= mid && j <= dr)
if(v[i] > v[j]){
w[++w[0]]=v[j];
j++;
}else{
w[++w[0]]=v[i];
i++;
}
for(int k=i; k<=mid; k++) w[++w[0]]=v[k];
for(int k=j; k<=dr ; k++) w[++w[0]]=v[k];
for(int k=st; k<=dr; k++)
v[k]=w[k];
}
void sortt(int st, int dr){
if(st < dr){
int mid=(st+dr)/2;
sortt(st, mid);
sortt(mid+1, dr);
iclas(st, mid, dr);
}
}
int main (){
fin>>len;
for(int i=1; i<=len; i++) fin>>v[i];
sortt(1, len);
for(int i=1; i<=len; i++) fout<<v[i]<<" ";
return 0;
}