数据结构-归并排序
来源:互联网 发布:网络平台玩彩票合法吗 编辑:程序博客网 时间:2024/06/06 07:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package
structsmethod;
import
java.util.Arrays;
public
class
mergingSort {
/*
* 归并排序
*/
int
a[]={
49
,
38
,
65
,
97
,
76
,
13
,
27
,
49
,
78
,
34
,
12
,
64
,
5
,
4
,
62
,
99
,
98
,
54
,
56
,
17
,
18
,
23
,
34
,
15
,
35
,
25
,
53
,
51
};
public
mergingSort(){
sort(a,
0
,a.length-
1
);
for
(
int
i=
0
;i<a.length;i++)
System.out.println(a[i]);
}
public
void
sort(
int
[] data,
int
left,
int
right) {
if
(left<right){
//找出中间索引
int
center=(left+right)/
2
;
//对左边数组进行递归
sort(data,left,center);
//对右边数组进行递归
sort(data,center+
1
,right);
//合并
merge(data,left,center,right);
}
}
public
void
merge(
int
[] data,
int
left,
int
center,
int
right) {
int
[] tmpArr=
new
int
[data.length];
int
mid=center+
1
;
//third记录中间数组的索引
int
third=left;
int
tmp=left;
while
(left<=center&&mid<=right){
//从两个数组中取出最小的放入中间数组
if
(data[left]<=data[mid]){
tmpArr[third++]=data[left++];
}
else
{
tmpArr[third++]=data[mid++];
}
}
//剩余部分依次放入中间数组
while
(mid<=right){
tmpArr[third++]=data[mid++];
}
while
(left<=center){
tmpArr[third++]=data[left++];
}
//将中间数组中的内容复制回原数组
while
(tmp<=right){
data[tmp]=tmpArr[tmp++];
}
System.out.println(Arrays.toString(data));
}
public
static
void
main(String[] args) {
mergingSort ms=
new
mergingSort();
ms.sort(ms.a,
0
, ms.a.length-
1
);
}
}
如果还是由不明白的地方,可以看下Java视频,多学习多积累,总有一天会成为大牛
0 0
- 数据结构 排序 归并排序
- 【数据结构】:排序--归并排序
- 数据结构排序--归并排序
- 数据结构之归并排序
- 数据结构--归并排序
- 【数据结构】归并排序
- 数据结构 - 归并排序
- C++数据结构--归并排序
- 数据结构-归并排序
- 数据结构归并排序实现
- 数据结构之归并排序
- 数据结构之归并排序
- 数据结构(8) 归并排序
- [数据结构] 归并排序算法
- 【数据结构】-归并排序,基数排序
- 数据结构--向量--归并排序
- 数据结构 — 归并排序
- 【数据结构】归并排序
- Dev-C++ 5.11简单使用说明
- Javascript/Jquery操作数组,增删改查以及动态创建HTML元素
- Android:onNewIntent()触发机制及注意事项
- 打印流
- [算法]Java 实现 简单MyNode类型 无序链表 递归 添加 删除 遍历
- 数据结构-归并排序
- Linux常用命令
- JPBM工作流提交时报java.lang.ClassCastException: de.odysseus.el.ExpressionFactoryImpl的解决办法
- Tab选项卡切换(二)
- 编码与解码
- css 文本和div垂直居中方法汇总
- Elasticsearch java API (23)查询 DSL Geo查询
- 【2025】两点之间的距离
- Leetcode-search-a-2d-matrix