博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆排序
阅读量:5110 次
发布时间:2019-06-13

本文共 447 字,大约阅读时间需要 1 分钟。

堆是一棵完全二叉树,它的每个结点大于或等于它的任意一个孩子。

在Java中可以用一个ArrayList存储堆,则对于位于 i 处的结点,它的左孩子在位置2i+1处,它的右孩子在位置2i+2处,而它的父亲在位置(i-1)/2处。

1.添加一个新结点:

1 Let the last node be the current node;2 while(the current node is greater than its parent){3     Swap the current node with its parent;4     Now the current node is one level up;5 }

2.删除根结点

1 Move the last node to replace the root;2 Let the root be the current node;

 

转载于:https://www.cnblogs.com/wanghui390/p/4014929.html

你可能感兴趣的文章
Java语言概述
查看>>
关于BOM知识的整理
查看>>
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
cassandra vs mongo (1)存储引擎
查看>>