?? maxheap.c
字號:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define HEAP_SIZE 10
int parent(int i);
int left(int i);
int right(int i);
void Max_Heapify(int A[],int i,int heap_size);
void Build_Max_Heap(int A[]);
void print(int A[]);
void HeapSort(int A[],int heap_size);
void Max_Heapify(int A[],int i,int heap_size)
{
int temp=A[i];
int j=i*2;
while(j<=heap_size)
{
if(j<heap_size) && A[j]<A[j+1]) j++;
if(temp> A[j]) break;
A[i]=A[j];
i=j;
j=i*2
}
A[i]=temp;
}
void Build_Max_Heap(int A[])
{
for(int i=HEAP_SIZE/2;i>=1;i--)
{
Max_Heapify(A,i,HEAP_SIZE);
}
}
void print(int A[])
{
for(int i=0;i<11;i++)
{
printf("%d ",A[i]);
}
printf("\n");
}
void HeapSort(int A[],int heap_size)
{
Build_Max_Heap(A);
print(A);
}
int main()
{
int A[11]={0,1,10,14,16,4,7,9,3,2,8};
print(A);
HeapSort(A,HEAP_SIZE);
system("pause");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -