Pagini recente » Cod sursa (job #3170306) | Cod sursa (job #2496711) | Cod sursa (job #1086470) | Cod sursa (job #747617) | Cod sursa (job #1713932)
#include <fstream>
using namespace std;
int n, i1, i2, i, a[1000];
ifstream f ("algsort.in");
ofstream g ("algsort.out");
void mergesort ( int a[], int n )
{
if (n==1)
{
return;
}
mergesort (a+1, n/2);
mergesort (a+n/2, n-n/2);
int b[n+2];
i1=1;
i2 = n/2+1;
i = 1;
while (i1 <= n/2 && i2 <= n){
if (a[i1] < a[i2]) {
b[i] = a[i1];
i1++;
i++;
}
else {
b[i] = a[i2];
i2++;
i++;
}
}
while (i1 <= n/2) {
b[i] = a[i1];
i++;
i1++;
}
while (i2 <= n) {
b[i] = a[i2];
i++;
i2++;
}
for ( i = 1; i <=n; i++) {
a[i] = b[i];
}
}
int main ()
{
f>>n;
for (i=1; i<=n; i++)
{
f>>a[i];
}
mergesort ( a, n );
for (i=1; i<=n; i++)
{
g<<a[i]<<" ";
}
return 0;
}