堆排序的实例化(详细过程)
来源:互联网 发布:汉诺塔c语言程序代码 编辑:程序博客网 时间:2024/05/21 10:12
数组a[] = {8,10,23,48,7,6,11,13,17,19,20,14,5}在堆(完全二叉树)中表示为:
一共13个数,在经过大项堆的初始后,数组的首位为最大值,此时完全二叉树为:
将48和5对换位置后,得到数组的最后一位为最大值,此时的完全二叉树为:
并再次进行大项堆的初始化操作,因为已经确定数组最后一位为最大数,所以此时的完全二叉树为:
将23和5对换位置后,得到数组的倒数第二位23为第二大值,并再次进行大项堆的初始化操作,如此即可得到最后的排序好的数组:
第一轮:20,19,1417,8,6,11,13,10,5,7,23,48
第二轮:19,17,14,13,8,6,11,7,10,5,20,23,48
第三轮:17,13,14,10,8,6,11,7,5,19,20,23,48
第四轮:14,13,11,10,8,6,5,7,17,19,20,23,48
第五轮:13,10,11,7,8,6,5,14,17,19,20,23,48
第六轮:11,10,6,7,8,5,13,14,17,19,20,23,48
第七轮:10,8,6,7,5,11,13,14,17,19,20,23,48
第八轮:8,7,6,5,10,11,13,14,17,19,20,23,48
第九轮:7,5,6,8,10,11,13,14,17,19,20,23,48
第十轮:6,5,7,8,10,11,13,14,17,19,20,23,48
第十一轮:5,6,7,8,10,11,13,14,17,19,20,23,48 排序结束
最终的完全二叉树:
1 0
- 堆排序的实例化(详细过程)
- 快速排序实例化(详细过程)
- 堆排序的过程
- 创建堆,堆排序的详细实现过程,C++完整代码
- 堆排序(绝对详细)
- 堆排序的完整过程
- 堆排序的详细讲解及实现
- 堆排序的思想以及实现过程(链式存储)
- 堆排序详细代码
- 堆排序的过程及简单实现
- Spring BeanFactory实例化Bean的详细过程
- 详细的tfidf构建过程实例(转)
- 堆排序实例
- C++实例 堆排序
- 堆排序关键过程
- Java实现冒排序的详细过程
- 关于数组排序问题的详细过程
- 排序与查找实例(五):堆排序
- 为什么标准用户运行不了英雄联盟?TGP?如何限制lol的权限?
- 钻牛角尖系列之JVM(二)—对象是怎么来的?
- 摄像头跟随
- Android中级:多渠道打包
- emoji 表情图片解决方法
- 堆排序的实例化(详细过程)
- C语言可变参数
- ECMAScript6(ES6)标准之函数扩展特性箭头函数、Rest参数及展开操作符
- Win7下Git的安装
- 百度地图demo(Android Studio)
- eclipse中设置包的分成显示,看起来比较有层次感
- MySql查询入门
- heroku
- 融云项目经验总结-头像和昵称显示/badge显示