Witam mam problem z algorytmem magicznych piatek, stworzylem taka o to fukncje ale cos tu jest nie tak program sie radosnie wysypuje :/ :(
int SelectMedian(int A[], int p, int r)
{
int start;
start=p;
while(start <= r)
{
if(start+5 <= r)
InsertionSort(A,start,start+5);
else
InsertionSort(A,start,r);
start+=5;
}
int i,bsize,ceiler;
bsize=ceil((r+1-p)/(5));
printf("bsize:%d",bsize);
bsize*=2;
bsize++;
int B[bsize];//
start=p;
i=0;
while(start <= r)
{
if(start+5 <= r)
{
ceiler=start+3;
B[i]=A[ceiler-1];
B[i+bsize]=ceiler-1;
}
else
{
ceiler=start+1+floor(((r-start+1))/(2));
B[i]=A[ceiler-1];
B[i+bsize]=ceiler-1;
}
i=i+1;
start+=5;
}
if(bsize <= 5)
{
InsertionSort(B,0,bsize);
ceiler=ceil((bsize)/(2));
return B[ceiler];
}
else
{
return SelectMedian(B,0,bsize-1);
}
}