Pagini recente » Cod sursa (job #1966214) | Cod sursa (job #2245423) | Cod sursa (job #645169) | Cod sursa (job #576208) | Cod sursa (job #1217452)
#include <fstream>
using namespace std;
int N, a[500100], b[500100];
void merge_sort(int l, int r){
if (l == r) return;
int mid=(l+r)/2;
merge_sort(l,mid);
merge_sort(mid+1,r);
int ind=l-1,i=l,j=mid+1;
while (i<=mid && j<=r)
if (a[i]<a[j])
b[++ind]=a[i++];
else
b[++ind]=a[j++];
for (; i<=mid; i++)
b[++ind]=a[i];
for (; j<=r; j++)
b[++ind]=a[j];
for (i=l; i<=r; i++)
a[i]=b[i];
}
int main(){
ifstream in("algsort.in");
ofstream out("algsort.out");
in >> N;
int i;
for (i=1; i<=N; i++)
in >> a[i];
merge_sort(1,N);
for (i=1; i<=N; i++)
out << a[i] << " ";
return 0;
}