Pagini recente » Cod sursa (job #1269470) | Cod sursa (job #1280776) | Cod sursa (job #21416) | Cod sursa (job #2922739) | Cod sursa (job #3196889)
#include <bits/stdc++.h>
using namespace std;
int mer[1000001], a[1000001];
void interclaseaza(int st, int mid, int dr){
int i = st;
int j = mid + 1;
int k = st - 1;
while(i <= mid && j <= dr){
if(a[i] < a[j]){
mer[++k] = a[i++];
}else{
mer[++k] = a[j++];
}
}
for(;i<=mid;i++){
mer[++k] = a[i];
}
for(;j<=dr;j++){
mer[++k] = a[j];
}
for(int ii = st;ii<=dr;ii++){
a[ii] = mer[ii];
}
}
void sorteaza(int st, int dr){
if(st < dr){
int mid = (st + dr) / 2;
sorteaza(st,mid);
sorteaza(mid+1,dr);
interclaseaza(st, mid, dr);
}
}
int main(void){
ofstream cout("algsort.out");
ifstream cin("algsort.in");
int n;
cin >> n;
for(int i = 1;i<=n;i++){
cin >> a[i];
}
sorteaza(1,n);
for(int i = 1;i<=n;i++){
cout << a[i] << ' ';
}
}