算法导论 最小堆

来源:互联网 发布:淘宝客返利 编辑:程序博客网 时间:2024/04/30 06:09
void minHeapify(int a[],int i,int len){int l=i*2,r=i*2+1;int smallest=i;if(l<=len && a[l]<a[i]){smallest=l;}if(r<=len && a[r]<a[smallest]){smallest=r;}if(i != smallest){int temp=a[i];a[i]=a[smallest];a[smallest]=temp;minHeapify(a,smallest,len);}}void buildMinHeap(int a[],int len){for(int i=len/2;i>=1;i--){minHeapify(a,i,len);}}void minHeapSort(int a[],int len){buildMinHeap(a,len);int i;for(i=len;i>1;i--){int temp=a[i];a[i]=a[1];a[1]=temp;minHeapify(a,1,i-1);}}

0 0
原创粉丝点击