建堆&堆排序-代码
来源:互联网 发布:行业研究 知乎 编辑:程序博客网 时间:2024/06/08 09:33
建堆&堆排序
#include <stdlib.h>#include <stdio.h>#include <vector>#include <string>#define MAX_SIZE 9using namespace std;void AdjustHeap(int array[], int i, int n){ int max_temp = array[i]; int j = 2 * i + 1; //left while (j < n - 1) { if (j < n - 1 && array[j + 1] > array[j]) { j++; } if (max_temp > array[j]) { break; } array[(j - 1) / 2] = array[j]; array[j] = max_temp; j = 2 * j + 1; }}int main(){ int array[MAX_SIZE] = {1, 6, 3, 4, 2, 9, 0, 8, 5}; for (int i = (MAX_SIZE - 2 / 2); i >= 0; i--) { AdjustHeap(array, i, MAX_SIZE); } for (int i = 0; i < MAX_SIZE; i++) { printf("%d\t", array[i]); } printf("\n"); for (int i = MAX_SIZE - 1; i > 0; i--) { int temp = array[0]; array[0] = array[i]; array[i] = temp; AdjustHeap(array, 0, i); } for (int i = 0; i < MAX_SIZE; i++) { printf("%d\t", array[i]); } printf("\n"); return 0;}
1 0
- 建堆&堆排序-代码
- 堆排序代码
- 堆排序Java代码
- 堆排序《代码》
- 堆排序 经典代码
- 堆排序代码
- 堆排序详细代码
- 堆排序+代码实现
- 堆排序练习代码
- C++堆排序代码
- 堆排序代码
- 堆排序代码实现
- 堆排序JAVA代码
- 堆排序(代码片段)
- 堆排序代码
- 堆排序算法代码
- 堆排序代码实现
- 堆排序-代码版
- Handler的使用与异步消息处理
- MySQL5.7.10下载及安装及配置
- 吉大培训 day 1 test
- Logistic regression
- RT3070 AP模式移植 基于linux3.0内核
- 建堆&堆排序-代码
- for_each算法和transform算法区别
- ssh无密码访问
- 实验6-5 使用函数输出指定范围内的Fibonacci数 (20分)
- linux下JDK设置
- UI学习第06天
- 操作系统学习笔记:分布式系统结构
- Android Dagger依赖注入框架浅析
- 开发环境配置