算法导论 练习题 6.5-3
2017-04-06 20:54
253 查看
#include <stdio.h> #include <limits.h> #include "最小堆.h" int heapMinimum(int a[],int len) { if(len<1) { printf("Heap is empty!"); return INT_MIN;; } return a[1]; } int heapExtractMin(int a[],int len) { int t=a[1]; a[1]=a[len]; minHeapify(a,1,len-1); return t; } void heapDecreaseKey(int a[],int i,int key) { if(key>a[i]) { printf("更新的键值应该小于原先键值!"); return; } a[i]=key; for(int j=i/2;j>=1 && a[j]>a[i];) { int temp=a[j]; a[j]=a[i]; a[i]=temp; i=j; j=i/2; } } void minHeapInsert(int a[],int len,int key) { a[len+1]=INT_MAX; heapDecreaseKey(a,len+1,key); }
相关文章推荐
- 算法导论 练习题 6.5-6
- 算法导论 练习题 6.5-7
- 算法导论 练习题 6.5-8
- 算法导论 练习题 6.5-9
- 算法导论第2版-练习题6.5-8
- 《算法导论》练习题 2.1-4
- 算法导论 6.5-8解答
- 算法导论 练习题 2.1-2
- 算法导论 练习题 2.3-3
- 算法导论 练习题 3.2-5
- 算法导论 练习题 4.4-3
- 算法导论 练习题 4.4-8
- 算法导论 练习题 4.5-1
- 算法导论 练习题 6.1-4
- 算法导论 练习题 9.2-3
- 算法导论(第三版) 第二章练习题
- 算法导论 练习题 13.4-7
- 算法导论 练习题 15.1-3
- 算法导论 练习题 15.5-4
- 算法导论-6.5-9 使用最小堆完成k路归并算法