ho provato ad implementare questa funzione all'interno di un esercizio ma non funziona, il problema è che quando va a ripristinare l'heap a volte considera elementi che invece non dovrebbe considerare, come mai???
Heap sort:
codice:
void heapsort(int a[],int n)
{
int k=n-1;
while(k>0)
{
printf("- a[0]: %d a[%d]: %d\n\n",a[0],k,a[k]);
swap(&a[0],&a[k]);
k--;
boh(a,k);
stamp(a,n);
}
}
Atoh:
codice:
void atoh(int a[],int n)
{
int f=n;
/*bottom-up*/
while(f>0)
{heapify(a,f);f--;}
/*top-down*/
while(f<n)
{heapify(a,f);f++;}
}
mi sto scervellando