java堆排序算法的原理和作用
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"java堆排序算法的原理和作用",在日常操作中,相信很多人在java堆排序算法的原理和作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java堆排序
千家信息网最后更新 2025年01月31日java堆排序算法的原理和作用
这篇文章主要介绍"java堆排序算法的原理和作用",在日常操作中,相信很多人在java堆排序算法的原理和作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java堆排序算法的原理和作用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、定义
由下图(网上找的),堆排序类似这种,把最大的数字放到最下面的最右面位置,然后把第二大的数字放到最下层的最右面倒数第二个位置,依此类推,如下:
2、代码
public class TestController { public static void main(String[] args) { int[] nums = {16,7,3,20,17,8}; headSort(nums); System.out.println("结果为:" + Arrays.toString(nums)); } /** * 堆排序 */ public static void headSort(int[] list) { // 构造初始堆,从第一个非叶子节点开始调整,左右孩子节点中较大的交换到父节点中 for (int i = (list.length) / 2 - 1; i >= 0; i--) { headAdjust(list, list.length, i); } // 排序,将最大的节点放在堆尾,然后从根节点重新调整 for (int i = list.length - 1; i >= 1; i--) { int temp = list[0]; list[0] = list[i]; list[i] = temp; headAdjust(list, i, 0); } } private static void headAdjust(int[] list, int len, int i) { int k = i, temp = list[i], index = 2 * k + 1; while (index < len) { if (index + 1 < len) { if (list[index] < list[index + 1]) { index = index + 1; } } if (list[index] > temp) { list[k] = list[index]; k = index; index = 2 * k + 1; } else { break; } } list[k] = temp; }}
3、结果
结果为:[3, 7, 8, 16, 17, 20]
到此,关于"java堆排序算法的原理和作用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
排序
节点
作用
原理
算法
学习
结果
最大
数字
更多
帮助
调整
实用
较大
依此类推
接下来
下图
个位
二大
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sybase数据库注册码
选择计算机网络技术专业的原因
数据库视图不会用到哪些语句
超市软件开发语言
互联网伪科技小视频
c 服务器培训
软件开发申请哪方面的专利
分子网络技术分离策略
广州的打车软件开发商
自己组装一台小型服务器有啥用
连接中国vpn服务器
学校网络安全监督检查自查
云服务器管理视频
应用软件开发有哪些风险
sql命令行建立数据库
公众号从数据库中查找回复
什么是服务器地址
互联网科技金融创业
主机版战地2042连不上服务器
ibm服务器修复
lol打开服务器闪退
手机一待机微信就连接不上服务器
查询程序的服务器地址
小学网络安全备课
软件开发验证与确认
搭设代理服务器
丹路康网络技术
河北爱信网络技术有限公司
鲨鱼快游网络技术退款
武清网络安全培训班