Post
by pollob_28 » Wed Apr 25, 2012 5:10 pm
#include <stdio.h>
#include <math.h>
#include <conio.h>
int array [2000000];
void merge(int* input, int p, int r)
{
int mid = (int)floor((p + r) / 2);
int i1 = 0;
int i2 = p;
int i3 = mid + 1;
int temp[r-p+1];
while ( i2 <= mid && i3 <= r )
if ( input[i2] < input[i3] )
temp[i1++] = input[i2++];
else
temp[i1++] = input[i3++];
while ( i2 <= mid )
temp[i1++] = input[i2++];
while ( i3 <= r )
temp[i1++] = input[i3++];
for ( int i = p; i <= r; i++ )
input = temp[i-p];
}
void merge_sort(int* input, int p, int r)
{
if ( p < r )
{
int mid = (int)floor((p + r) / 2);
merge_sort(input, p, mid);
merge_sort(input, mid + 1, r);
merge(input, p, r);
}
}
int main (){
freopen ("age.txt", "r", stdin);
int test;
scanf ("%d", &test);
while (test !=0){
for (int i =1; i <=test; i++)
scanf ("%d", &array );
merge_sort (array, 1, test);
for (int i =1; i<=test; i++)
printf ("%d ", array );
printf ("\n");
scanf ("%d", &test);
}
getch();
return 0;
}
i don't know why i am getting presentation error
thanks in advance