堆排序 思考
来源:互联网 发布:二维码在线设计软件 编辑:程序博客网 时间:2024/06/05 15:41
将整数数组(7-6-3-5-4-1-2)按照堆排序的方式原地进行升序排列,请问在整个排序过程中,元素3的数组下标发生过____次改变。
按整数数组的最大堆定义,每次调整完后根结点的元素与最后个元素交换,继续下次调整,直到所有的结点调整完毕。
原数组为 7 6 3 5 4 1 2 满足最大堆定义,直接交换根节点元素
2 6 3 5 4 1 7,交换完毕
6 5 3 2 4 1 7,调整完毕
1 5 3 2 4 6 7,交换完毕
5 4 3 2 1 6 7,调整完毕
1 4 3 2 5 6 7,交换完毕
4 2 3 1 5 6 7,调整完毕
1 2 3 4 5 6 7,交换完毕,此时虽然已有序,但仍需进行最大堆调整,因为最大堆算法时间复杂度为nlog2n,会进行继续搜索调整
3 2 1 4 5 6 7,调整完毕,移动一次
1 2 3 4 5 6 7,交换完毕,移动两次
2 1 3 4 5 6 7,调整完毕
1 2 3 4 5 6 7,交换完毕
阅读全文
0 0
- 堆排序 思考
- 堆排序的代码实现与思考
- 关于堆排序的一些思考
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 远程(局域网)链接windows桌面
- PLSQL中&符号处理
- 这是一篇最通熟易懂的Hadoop HDFS实践攻略
- TensorFlow学习笔记(9)--使用CNN做英文文本分类任务
- BestCoder Round #59 (div.1)
- 堆排序 思考
- 推荐一个好用的论文助手工具
- 连接linux的一些工具
- HTTP & RTMP 直播比较
- Android Butterknife 8.4.0 使用方法总结 zelezny : Butterknife插件的使用
- 使用databinding,实现简单全面的百分比布局(屏幕适配的大招)
- iOS ARC与MRC混编的一些解决方法
- 算法提高 题目 2 密码锁 (bfs最少步数)
- Maven 在pom.xml中配置Jetty出现'org.eclipse.jetty.server.nio.SelectChannelConnector' cannot be loaded异常