算法导论-优先级队列-C语言
来源:互联网 发布:一战各国伤亡知乎 编辑:程序博客网 时间:2024/05/16 07:27
#define MIN_INT (-65535)int heapSize;void exchange(int array[],int a, int b);void maxHeapify(int array[], int i);int main(){ printf("Hello world!\n"); return 0;}void maxHeapify(int array[], int i){ int l = i * 2 + 1; int r = (i + 1) * 2; int largest = i; if(l < heapSize && array[l] > array[i]) { largest = l; } if(r < heapSize && array[r] > array[largest]) { largest = r; } if(largest != i) { exchange(array,largest,i); heapHeapify(array,largest,heapSize); }}int heapMaxMum(int array[]){ return array[0];}int heapExtractMax(int array[]){ int max; if(heapSize < 1) { return -1;//Error heap overflow } max = array[0]; array[0] = array[heapSize - 1]; maxHeapify(array,0,heapSize - 1); return max;}void heapIncreaseKey(int array[],int i,int key){ int parent; if(array[i] < key) { return;//Error,key must be larger than array[i] } array[i] = key; parent = (i - 1) / 2; while(i > 0 && array[parent] < key) { exchange(array,parent,i); i = parent; parent = (i - 1) / 2; }}void maxHeapInsert(int array[],int key){ array[heapSize] = MIN_INT; heapIncreaseKey(array,heapSize,key); ++heapSize;}// exchange content of position a and b in arrayvoid exchange(int array[],int a, int b){ int temp; temp = array[a]; array[a] = array[b]; array[b] = temp;}
0 0
- 算法导论-优先级队列-C语言
- 算法导论-优先级队列
- 《算法导论》第六章之堆和优先级队列相关算法C语言实现
- 《算法导论》 6.5优先级队列
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- 《算法导论》笔记--优先级队列
- 《算法导论》笔记--优先级队列
- 《算法导论》笔记--优先级队列
- 算法导论第六章 优先级队列
- 算法导论笔记(二) : 优先级队列
- 【算法导论】堆排序和优先级队列
- 算法导论 第六章:优先级队列
- 算法导论学习笔记——最大优先级队列
- 《算法导论》第6章 堆排序 (2)优先级队列
- 堆实现优先级队列(算法导论第六章)
- 《算法导论》读书笔记之第6章 优先级队列
- 算法导论:堆排序的应用---优先级队列
- C++最大堆实现priority_queue优先级队列(算法导论)
- 一种新颖的棋牌玩法---J Q K ,目前已在班级内推广,希望不日可以写出这款软件
- 用标准库sstream实现整数和字符串的互化
- Java面试题三
- C语言总结5
- poj3658 模拟
- 算法导论-优先级队列-C语言
- 环境变量和export的命令--shell进程的变量可见域问题
- 已将GitHub scrapy-redis库升级,使其兼容最新版本Scrapy
- 如何提高Axure设计的效率 提高Axure设计效率的10条建议
- The Himalayas
- Linux页框管理
- Enterprise Architect里面能否直接全屏查看图
- 解决Servlet中get或post中文乱码问题
- KNN算法的CUDA实现