代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
二叉堆
作者:
阿了个里
/ 发布于
2013/8/5
/
892
数据结构温习,PriorityQueue 背后的实现原理。做了适当简化,数组大小固定。
public class BinaryHeap { private final static int MAX = 10; private int[] data = new int[MAX]; private int size = 0; public void add(int[] data) { if (data == null || data.length > 10) throw new IllegalArgumentException("Data is null or too long"); for (int value : data) { add(value); } } public void add(int value) { checkFull(); int i = size; if (i == 0) { data[0] = value; } else { while (i > 0) { int parent = (i - 1) >>> 1; if (data[parent] <= value) break; data[i] = data[parent]; i = parent; } data[i] = value; } size++; } public int take() { checkEmpty(); int result = data[0]; int i = 0; int half = size >>> 1; while (i < half) { int child = (i << 1) + 1; int right = child + 1; if (right < size && data[child] >= data[right]) { child = right; } if (data[size - 1] <= data[child]) break; data[i] = data[child]; i = child; } data[i] = data[size - 1]; size--; return result; } private void checkEmpty() { if (size == 0) throw new RuntimeException("Empty"); } private void checkFull() { if (size == MAX) throw new RuntimeException("Full"); } public static void main(String[] args) throws Exception { BinaryHeap bh = new BinaryHeap(); int[] data = new int[]{2, 3, 1, 5, 9, 8, 7, 6, 4}; bh.add(data); for (int i = 0; i < data.length; i++) { System.out.println(bh.take()); } } }
试试其它关键字
二叉堆
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
阿了个里
贡献的其它代码
(
2
)
.
二叉堆
.
用 Shell 删除出某些文件外的所有文件
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3