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); } }
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); } }