堆排序
时间:2019-11-25
本文章向大家介绍堆排序,主要包括堆排序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
void adjust(int i, int nLen) { int j = ((nLen - 1) - 1) / 2; while (j >= i) { if (2 * j + 1 > nLen - 1) { break; } if (2 * j + 2 > nLen - 1) { if (g_szArray[j] < g_szArray[2 * j + 1]) { int nTmp = g_szArray[j]; g_szArray[j] = g_szArray[2 * j + 1]; g_szArray[2 * j + 1] = nTmp; } } else { int *pMax = 0; if (g_szArray[2 * j + 1] > g_szArray[2 * j + 2]) { pMax = &g_szArray[2 * j + 1]; } else { pMax = &g_szArray[2 * j + 2]; } if (g_szArray[j] < *pMax) { int nTmp = g_szArray[j]; g_szArray[j] = *pMax; *pMax = nTmp; } } j--; } } void main() { int nLen = sizeof(g_szArray) / sizeof(g_szArray[0]); adjust(0, nLen); int nCnt = nLen; for (int i = 0; i <= nLen - 1; i++) { int nTmp = g_szArray[0]; g_szArray[0] = g_szArray[nLen - 1 - i]; g_szArray[nLen - 1 - i] = nTmp; adjust(0, --nCnt); } for (int i = 0; i < nLen; i++) { printf("%d ", g_szArray[i]); } printf("\n"); system("pause"); }
原文地址:https://www.cnblogs.com/predator-wang/p/11926735.html
- 网站静态内容出版解决方案
- 如何复制图文消息封面图片?正文没显示
- C#基础知识回顾--线程传参
- 数据库进程间通信解决方案IPC
- 苹果后端的Oracle数据库
- C#基础知识回顾--C#遍历enum类型、获取enum项个数
- 用香蕉也能玩电脑游戏—Tensorflow对象检测接口的简单应用
- 通过图片定位给一张图片添加多个链接
- Struts Interceptor Example
- 微信服务号模板消息接口新增"设置行业"和"添加模板"及细节优化
- WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter
- WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法
- WPF文字修饰——上、中、下划线与基线
- 微信公众平台数据接口正式对所有认证公众号开放
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android Studio设置颜色拾色器工具Color Picker教程
- Kotlin中常见的符号详解
- Kotlin中实体类的创建方式
- Android自定义流式布局/自动换行布局实例
- Android 中 MD5 的几种生成方式(小结)
- Flutter 日期时间DatePicker控件及国际化
- 解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题
- Kotlin 匿名类实现接口和抽象类的区别详解
- android实现微信朋友圈发布动态功能
- 基于Android studio3.6的JNI教程之helloworld思路详解
- 基于Android studio3.6的JNI教程之opencv实例详解
- AndroidStudio代码达到指定字符长度时自动换行实例
- android studio 新建项目报错的解决之路
- Android Studio 3.6中使用视图绑定替代 findViewById的方法
- Android 使用View Binding的方法详解