heap

来源:互联网 发布:管理学培训课程网络 编辑:程序博客网 时间:2024/05/22 07:54
#include <cstdio>#include <iostream>using namespace std;void heapAdjust(int a[],int n,int len){int i=1,left,right,t,cur,j,min;bool flag=false;flag = true;cur=n;while(cur<=len/2&&flag){flag=false;left = cur*2;right = left + 1;if(right<=len&&a[left]>a[right]){min = right;}else min = left;if(a[cur]>a[min]){t=a[min];a[min]=a[cur];a[cur]=t;cur=min;flag=true;}}}int heap_create(int a[],int len){int i=1,left,right,t,cur,j;bool flag=false;for(j=len/2;j>0;j--){heapAdjust(a,j, len);}for(i=len;i>0;i--){cout<<a[1]<<",";a[1]=a[len];len--;heapAdjust(a,1, len);}return 0;}int main(){int a[]={-1,49,38,65,97,76,13,27,49};heap_create(a,8);return 0;}

0 0