堆排序就是借助二叉堆进行排序,不了解二叉堆的可以先看这里。本文以升序排序为例,首先将待排序数组放置在最小堆中,此时堆顶一定是数组中最小的元素,然后删除堆顶元素,此时调整后的最小堆顶会是第二小的元素,从而实现排序。

时间复杂度:O(nlogn)

代码:

    public static  void main(String [] args) {
Heap<Integer> h = new Heap<>();
Integer[] i = {20,30,90,40,70,110,60,10,100,50,80};
for (int j = 0; j < i.length; j++) {
h.insert(i[j]);
}
while(!h.isEmpty())
{
System.out.print(h.getFirst()+" ");
h.deleteFirst();
} }

输出结果:

10 20 30 40 50 60 70 80 90 100 110

最新文章

  1. Android studio
  2. css相对定位和绝对定位
  3. AngularJS入门心得3——HTML的左右手指令
  4. 注意:DateTimePicker.Text不靠谱
  5. ajaxFileUpload上传文件没反应
  6. js高级技巧之高级定时器
  7. Emmet基本使用方法
  8. 基于JavaScript实现表单密码的隐藏和显示出来
  9. java截取字符串中的数字
  10. Codeforces Round #260 (Div. 2) B
  11. WCF - 实例与会话
  12. 正确设置网站title、keywords、description(转载)
  13. C# 使用枚举获取对应的数组值时
  14. eclipse中删除多余的tomcat server
  15. 使用canvas编写时间轴插件
  16. [Swift]LeetCode214. 最短回文串 | Shortest Palindrome
  17. PHP开发小技巧③—实现多维数组转化为一维数组
  18. JavaScript模拟表单(带数组的复杂数据结构)提交
  19. Java中关于变量的几种情况
  20. imperva命令行查看流量值大小

热门文章

  1. Shiro加盐加密
  2. 使用django进行大文件的上传下载
  3. socket通信时如何判断当前连接是否断开--select函数,心跳线程,QsocketNotifier监控socket
  4. 7个步骤让PC网站自动适配手机网页
  5. Anaconda安装报错
  6. 初始STM32
  7. IOS+H5页面自定义按钮无效
  8. Https请求被中止: 未能创建 SSL/TLS 安全通道
  9. Linux 命令实战
  10. 同步/异步/阻塞/非阻塞/BIO/NIO/AIO