Kod: Zaznacz cały
void Przesiewanie(int l,int p, int *A)
{
int x;
int i,j;
x=A[l];
i=l;
j=2*i+1;
while(j<=p)
{
if(j<p && A[j]<A[j+1])
j++;
if(x<A[j])
{
A[i]=A[j];
i=j;
j=2*i+1;
}
}
A[i]=x;
}
void BudujStog(int n,int *A)
{
for(int i=(n-2)/2;i>=0;i--)
Przesiewanie(i,n-1,A);
}
void SortowanieStogowe(int n,int *A)
{
BudujStog(n,A);
int x;
for(int i=n-1;i>=1;i--)
{
x=A[0];
A[0]=A[i];
A[i]=x;
Przesiewanie(0,i-1,A);
}
}