排序(5)——堆排序
来源:互联网 发布:缺乏安全感怎么办知乎 编辑:程序博客网 时间:2024/06/08 10:24
“test.cpp”
<strong><span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;#include<assert.h>void HeapAdjust(int* arr,int parent,size_t size){assert(arr);int child = 2*parent+1;while(child && child < size){if((child+1 < size) && (arr[child+1] > arr[child])){++child;}if(arr[parent] < arr[child]){swap(arr[parent],arr[child]);}parent = child;child = 2*parent+1;}}void test(){int arr[] = {5,3,9,2,7,1,8,0,4,6};size_t size = sizeof(arr)/sizeof(arr[0]);//先建立一个大顶堆for(int i = (size-2)/2;i >= 0;i--){HeapAdjust(arr,i,size);}for(int i = 0;i < size;i++){cout<<arr[i]<<" ";}cout<<endl;//把根节点的值和最后一个节点的值进行交换,在从根节点开始向下调整for(int i = size-1;i >= 0;i--){swap(arr[0],arr[i]);HeapAdjust(arr,0,i);}for(int i = 0;i < size;i++){cout<<arr[i]<<" ";}cout<<endl;}int main(){test();system("pause");return 0;}</span></strong>
0 0
- 排序(5)——堆排序
- 排序——堆排序(C++)
- 排序——堆排序
- 排序——堆排序
- 排序——堆排序
- 排序——堆排序
- 排序——堆排序
- 排序(5)---堆排序
- 选择排序—堆排序
- 选择排序—堆排序
- 内部排序—堆排序
- 排序算法—堆排序
- 排序算法—堆和堆排序
- 堆排序—源码
- 数据结构 — 堆排序
- 堆排序—Java
- 堆排序—Java
- 排序(堆排序)
- IIS7/8 出现HTTP 500内部服务器错误解决方案
- 成员函数的识别
- 关于卸载linux的方法
- Webpack 入门指迷
- 当移动端软键盘弹出时错位问题解决方案
- 排序(5)——堆排序
- Extjs5的Ext.each方法学习
- window 双网卡配置
- xcode中配置git并上传代码到github
- objective-C之 NSIndexPath , NSIndexSet , NSRange,NSCharacterSet
- 在Idea中连接数据库并生成实体类
- 职业素养
- 【bzoj1096】[ZJOI2007]仓库建设
- Revit开发之备份文件数量