Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
contest_exercises_template
提交
742cc17b
C
contest_exercises_template
项目概览
CSDN 技术社区
/
contest_exercises_template
通知
79
Star
2
Fork
18
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
4
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
contest_exercises_template
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
742cc17b
编写于
2月 24, 2023
作者:
幻灰龙
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into 'master'
Java 归并算法 See merge request
!6
上级
16644914
d93b8b35
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
109 addition
and
0 deletion
+109
-0
exercises/liufq/中等/归并排序/Solution.java
exercises/liufq/中等/归并排序/Solution.java
+44
-0
exercises/liufq/中等/归并排序/exercies.md
exercises/liufq/中等/归并排序/exercies.md
+32
-0
exercises/liufq/中等/归并排序/test_cases/1.in
exercises/liufq/中等/归并排序/test_cases/1.in
+2
-0
exercises/liufq/中等/归并排序/test_cases/1.out
exercises/liufq/中等/归并排序/test_cases/1.out
+9
-0
exercises/liufq/中等/归并排序/test_cases/2.in
exercises/liufq/中等/归并排序/test_cases/2.in
+2
-0
exercises/liufq/中等/归并排序/test_cases/2.out
exercises/liufq/中等/归并排序/test_cases/2.out
+9
-0
exercises/liufq/中等/归并排序/test_cases/3.in
exercises/liufq/中等/归并排序/test_cases/3.in
+2
-0
exercises/liufq/中等/归并排序/test_cases/3.out
exercises/liufq/中等/归并排序/test_cases/3.out
+9
-0
未找到文件。
exercises/liufq/中等/归并排序/Solution.java
0 → 100644
浏览文件 @
742cc17b
class
Solution
{
public
static
void
mergeSort
(
int
[]
nums
)
{
if
(
nums
==
null
||
nums
.
length
==
0
)
{
return
;
}
int
[]
helper
=
new
int
[
nums
.
length
];
mergeSort
(
nums
,
helper
,
0
,
nums
.
length
-
1
);
for
(
int
i
=
0
;
i
<
nums
.
length
;
i
++)
{
System
.
out
.
println
(
nums
[
i
]);
}
}
private
static
void
mergeSort
(
int
[]
nums
,
int
[]
helper
,
int
low
,
int
high
)
{
if
(
low
<
high
)
{
int
middle
=
low
+
(
high
-
low
)
/
2
;
mergeSort
(
nums
,
helper
,
low
,
middle
);
mergeSort
(
nums
,
helper
,
middle
+
1
,
high
);
merge
(
nums
,
helper
,
low
,
middle
,
high
);
}
}
private
static
void
merge
(
int
[]
nums
,
int
[]
helper
,
int
low
,
int
middle
,
int
high
)
{
for
(
int
i
=
low
;
i
<=
high
;
i
++)
{
helper
[
i
]
=
nums
[
i
];
}
int
left
=
low
;
int
right
=
middle
+
1
;
int
curr
=
low
;
while
(
left
<=
middle
&&
right
<=
high
)
{
if
(
helper
[
left
]
<=
helper
[
right
])
{
nums
[
curr
++]
=
helper
[
left
++];
}
else
{
nums
[
curr
++]
=
helper
[
right
++];
}
}
int
remain
=
middle
-
left
;
for
(
int
i
=
0
;
i
<=
remain
;
i
++)
{
nums
[
curr
+
i
]
=
helper
[
left
+
i
];
}
}
}
\ No newline at end of file
exercises/liufq/中等/归并排序/exercies.md
0 → 100644
浏览文件 @
742cc17b
# 归并排序
你需要用归并排序算法,对数组进行排序,并输出按照升序排序的字符数字串
归并排序算法的基本思想是将两个(或两个以上)有序表合并成一个新的有序表,
即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
## 输入描述
你需要对输入的数组根据归并排序算法升序排序
## 输出描述
输出按照升序排序的数组
## 输入样例
输入nums数组为:
1.
int[] nums = new int{}[1,2,4,3,5,6,7,8];
2.
int[] nums = new int{}[1,5,6,10,12,15,2,4];
3.
int[] nums = new int{}[1,4,90,12,14,19,3,4];
## 输出样例
1.
1,2,3,4,5,6,7,8
2.
1,2,4,5,6,10,12,15
3.
1,3,4,4,12,14,19,90
## 提示
无
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/1.in
0 → 100644
浏览文件 @
742cc17b
int[] nums = new int{}[1,2,4,3,5,6,7,8];
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/1.out
0 → 100644
浏览文件 @
742cc17b
1
2
3
4
5
6
7
8
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/2.in
0 → 100644
浏览文件 @
742cc17b
int[] nums = new int{}[1,5,6,10,12,15,2,4];
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/2.out
0 → 100644
浏览文件 @
742cc17b
1
2
4
5
6
10
12
15
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/3.in
0 → 100644
浏览文件 @
742cc17b
int[] nums = new int{}[1,4,90,12,14,19,3,4];
\ No newline at end of file
exercises/liufq/中等/归并排序/test_cases/3.out
0 → 100644
浏览文件 @
742cc17b
1
3
4
4
12
14
19
90
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录