public class HeapOperate2 {/** 建立堆时只需要保证根结点小于两个子结点或者大于两个子结点,对两个子结点大小没有要求*/public static void main(String[] args) {int[] a = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3 };  //在堆排序之前,打印初始数组print(a);  //进行堆排序heapSort(a);  //进行堆排序之后print(a);  }public static void heapSort(int[] a){//建立大根堆buildMaxHeap(a);  for (int i = a.length - 1; i >= 1; i--) {  swap(a[0], a[i]);  maxHeap(a, i, 0);  }  }  private static void buildMaxHeap(int[] a) {  int half = a.length/2;  for (int i = half; i >= 0; i--) {  maxHeap(a, a.length, i);  }  }  private static void maxHeap(int[] a, int heapSize, int index) {  //找出index位置处左右孩子的位置left和rightint left = index * 2 + 1;  int right = index * 2 + 2;  int largest = index;  if (left < heapSize && a[left] > a[index]) {  largest = left;  }  if (right < heapSize && a[right] > a[largest]) {  largest = right;  }  if (index != largest){//交换两个数据swap(a[index], a[largest]);  maxHeap(a, heapSize, largest);  }
}
}

java堆排序递归代码,无原理版,比较好理解相关推荐

  1. Java堆排序递归_大顶堆第二弹----堆排序(递归实现)

    1 packagecom.datastruct;2 3 importjava.util.ArrayList;4 importjava.util.Arrays;5 6 public classBigHe ...

  2. java练手代码大全手机版_20个Java练手项目,献给嗜血如狂的你

    过年了都放假了,宅在家给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行 ...

  3. java练手代码大全手机版_20个Java练手项目,献给嗜血如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固: JAVA基础 ...

  4. JAVA英雄血战代码,骑士助手版英雄血战下载

    官方介绍 全新的动作竞技冒险游戏,游戏中的所有英雄已经解锁,选自自己喜欢的英雄,准备进行战斗吧,电子竞技,菜是原罪,你菜吗?多人实时在线,5v5公平对决,虽然类似王者荣耀,但却是全新的内容与模式,玩家 ...

  5. java微信公众号开发教程_微信公众平台开发教程(java版本含代码) 中文PDF版 3.13MB...

    本文档将对即将推出的微信公众帐号开发系列连载教程做简单的说明. 教程主要是面向有一定 Java 编程基础的朋友, 目录: 微信公众帐号开发教程第 1 篇-引言  2 微信公众帐号开发教程第 2 篇-微 ...

  6. Java项目:学生管理系统(无库版)(java+打印控制台)

    源码获取:博客首页 "资源" 里下载! 功能介绍: 学生成绩管理系统成绩表 用户管理操作: /*** 用户管理操作*/ @Controller @RequestMapping(&q ...

  7. java练手代码大全手机版_java循环练习的简单代码实例

    ★打印九九乘法表 public class TestDemo { public static void main(String[] args){ for(int b=1;b<10;b++){ f ...

  8. Java 线程池的实现原理,你真的理解吗?

    点击关注公众号,实用技术文章及时了解 来源:guobinhit.blog.csdn.net/article/ details/105654919 1 线程状态 既然要说线程,我们就先来了解一下线程的几 ...

  9. YOLOV3代码与原理相互结合的理解(重点在特征图的输出的元素的解析)

    YOLOV3的原理浅谈 我会用非简短的语言说明一下yolov3的原理和我认为的一些特点. 我们以训练的角度来说一下 1:首先我们允许输入不同大小,不同长宽比的训练集图片,因为我们会对图片进行一个统一的 ...

  10. 知识库递归编程java和prolog代码;逻辑语言Prolog简介(附24555字PDF发“递归prolog简介”下载)

    知识库递归编程java和prolog代码:逻辑语言Prolog简介(附24555字PDF发"递归prolog简介"下载) 数据简化DataSimp 今天 数据简化DataSimp导 ...

最新文章

  1. 线段树 ---- 2021牛客多校第一场 J Journey among Railway Stations [线段树维护区间可行性判断]
  2. Myisamchk小工具使用手册
  3. 味道不错的NBearLite查询语法
  4. 视达配色教程17 灰色的色彩意象是什么
  5. Java面试170题答案解析(1-20题)
  6. oracle的order by排序中空字符串处理方法
  7. Python编程中一定要注意的那些“坑”(一)
  8. 赢得 Docker 挑战最佳实践
  9. paip.提升安全性--------用户密码控件方案总结
  10. 数据挖掘导论课后习题答案-第五章
  11. 6天掌握记忆宫殿,你就是记忆大师
  12. chapter4.面对对象
  13. K650c + Ubuntu15.04双显卡切换
  14. Domain=DDXMLErrorDomain Code=1 (null)
  15. ensp-VRRP的配置
  16. 一位宝石爱好者的零起点建站攻略
  17. Sharding JDBC-读写分离
  18. 【Launcher开发】Android桌面布局分析
  19. 如何用python实现地图数据可视化
  20. asp.net引用System.Speech实现语音提示

热门文章

  1. PS_01_基本操作
  2. 虚拟机网卡和linux bridge上tap设备的关系
  3. 10款最佳SQL Server服务器监控工具
  4. 世界上有多少数据?应该如何保护?
  5. 计算机系统下的审计系统,独立审计具体准则第20号——计算机信息系统环境下的审计...
  6. java五子棋程序_Java五子棋游戏
  7. linux4.6内核lcd驱动源代码,提供基于linux-2.6.32.2 内核100%完全可以使用的驱动源代码,绝无库文件,敬请放心使用。...
  8. “21天好习惯“ 第四期 — 4
  9. 计算机等级考试二级VB基础教程
  10. python实时语音转写_实时语音转写 API 文档