Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GreyZeng
algorithm
提交
cf89f609
A
algorithm
项目概览
GreyZeng
/
algorithm
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
cf89f609
编写于
1月 25, 2024
作者:
GreyZeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
heapify
上级
dd33837e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
25 deletion
+13
-25
src/main/java/git/snippet/heap/LintCode_0130_Heapify.java
src/main/java/git/snippet/heap/LintCode_0130_Heapify.java
+13
-23
src/main/java/git/snippet/heap/MaxHeap.java
src/main/java/git/snippet/heap/MaxHeap.java
+0
-2
未找到文件。
src/main/java/git/snippet/heap/LintCode_0130_Heapify.java
浏览文件 @
cf89f609
...
...
@@ -6,33 +6,23 @@ package git.snippet.heap;
// https://www.lintcode.com/problem/130/
public
class
LintCode_0130_Heapify
{
public
void
heapify
(
int
[]
a
)
{
if
(
null
==
a
||
a
.
length
<=
1
)
{
return
;
}
for
(
int
i
=
a
.
length
-
1
;
i
>=
0
;
i
--)
{
heapify
(
a
,
i
,
a
.
length
);
}
}
public
void
heapify
(
int
[]
arr
,
int
i
,
int
len
)
{
int
leftChildIndex
=
2
*
i
+
1
;
while
(
leftChildIndex
<
len
)
{
int
min
=
leftChildIndex
+
1
<
len
&&
arr
[
leftChildIndex
+
1
]
<
arr
[
leftChildIndex
]
?
leftChildIndex
+
1
:
leftChildIndex
;
min
=
arr
[
min
]
>
arr
[
i
]
?
i
:
min
;
if
(
min
==
i
)
{
break
;
for
(
int
index
=
a
.
length
-
1
;
index
>=
0
;
index
--)
{
int
i
=
index
;
int
leftChildIndex
=
2
*
i
+
1
;
while
(
leftChildIndex
<
a
.
length
)
{
int
minIndex
=
leftChildIndex
+
1
<
a
.
length
&&
a
[
leftChildIndex
]
>
a
[
leftChildIndex
+
1
]
?
leftChildIndex
+
1
:
leftChildIndex
;
minIndex
=
a
[
i
]
<
a
[
minIndex
]
?
i
:
minIndex
;
if
(
minIndex
==
i
)
{
break
;
}
swap
(
a
,
i
,
minIndex
);
i
=
minIndex
;
leftChildIndex
=
2
*
i
+
1
;
}
swap
(
arr
,
min
,
i
);
i
=
min
;
leftChildIndex
=
2
*
min
+
1
;
}
}
public
void
swap
(
int
[]
arr
,
int
i
,
int
j
)
{
if
(
i
!=
j
)
{
if
(
i
!=
j
&&
arr
!=
null
&&
arr
.
length
>
1
)
{
arr
[
i
]
=
arr
[
i
]
^
arr
[
j
];
arr
[
j
]
=
arr
[
i
]
^
arr
[
j
];
arr
[
i
]
=
arr
[
i
]
^
arr
[
j
];
...
...
src/main/java/git/snippet/heap/MaxHeap.java
浏览文件 @
cf89f609
...
...
@@ -22,12 +22,10 @@ package git.snippet.heap;
// heapify和heapInsert都是logN级别的复杂度,因为N个节点的二叉树高度是logN
public
class
MaxHeap
{
private
final
int
[]
heap
;
// private final int limit; limit == heap.length
private
int
heapSize
;
public
MaxHeap
(
int
limit
)
{
heap
=
new
int
[
limit
];
// this.limit = limit;
heapSize
=
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录