Ejemplo n.º 1
0
void HEAP_SORT(DATA_TYPE *A,int len) {    
    DATA_TYPE temp;    
    int i;    
    BUILD_MAX_HEAP(A,len);    
    for (i=len;i>=2;i--) {        
        temp = A[1];        
        A[1] = A[i];        
        A[i] = temp;        
        HEAP_SIZE --;        
        MAX_HEAPIFY(A,1);    
    }
}
void HEAPSORT (heap *A)
{
    BUILD_MAX_HEAP(A);
    int i;
    for(i = A->length -1; i>=1; i--)
    {
        int tmp = A->data[0];
        A->data[0] = A->data[i];
        A->data[i] = tmp;
        A->heap_size = A->heap_size -1;
        MAX_HEAPIFY(A, 0);
    }
}
Ejemplo n.º 3
0
void HEAPSORT(int* A,int len)
{
	BUILD_MAX_HEAP(A,len);
	int a=0;
	for(int i=0;i<len;i++)
	{
		a=A[0];
		A[0]=A[len-1-i];
		A[len-1-i]=a;
		MAX_HEAPIFY(A,len-1-i,0);
	}

}