java 基本算法之归并排序实例代码
发布时间 - 2026-01-11 00:57:41 点击率:次java 基本算法之归并排序实例代码

原理:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,
* 即把待排序序列分为若干个子序列,每个子序列是有序的。
* 然后再把有序子序列合并为整体有序序列。
实例代码:
public class MergeSort {
/**
*
*
*
* @param args
*/
public static void main(String[] args) {
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 };
sort(a, 0, a.length - 1);
System.out.println(Arrays.toString(a));
}
public static 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 static 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 (left <= center) {
tmpArr[third++] = data[left++];
}
while (mid <= right) {
tmpArr[third++] = data[mid++];
}
// 将中间数组中的内容复制回原数组
while (tmp <= right) {
data[tmp] = tmpArr[tmp++];
}
System.out.println(Arrays.toString(data));
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 基本算法之归并排序
# 归并排序
# java数据结构排序算法之归并排序详解
# Java经典排序算法之归并排序详解
# 深入探究TimSort对归并排序算法的优化及Java实现
# 归并排序的原理及java代码实现
# java实现归并排序算法
# java二路归并排序示例分享
# java 归并排序的实例详解
# 递归
# 希望能
# 谢谢大家
# 并为
# 再把
# 中取
# 组中
# 即把
# int
# String
# main
# void
# static
# 法是将
# br
# nbsp
# strong
# Merge
# pre
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python并发异常传播_错误处理解析【教程】
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
用yum安装MySQLdb模块的步骤方法
jQuery validate插件功能与用法详解
Laravel如何创建自定义中间件?(Middleware代码示例)
,网页ppt怎么弄成自己的ppt?
实例解析angularjs的filter过滤器
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何在阿里云高效完成企业建站全流程?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
php485函数参数是什么意思_php485各参数详细说明【介绍】
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Android实现代码画虚线边框背景效果
如何在景安服务器上快速搭建个人网站?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
香港服务器WordPress建站指南:SEO优化与高效部署策略
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Firefox Developer Edition开发者版本入口
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
如何用狗爹虚拟主机快速搭建网站?
微信小程序 require机制详解及实例代码
如何在IIS7中新建站点?详细步骤解析
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
手机网站制作与建设方案,手机网站如何建设?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何正确下载安装西数主机建站助手?
如何在IIS服务器上快速部署高效网站?
如何在Windows虚拟主机上快速搭建网站?
如何快速上传建站程序避免常见错误?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
javascript中对象的定义、使用以及对象和原型链操作小结
如何在搬瓦工VPS快速搭建网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
中国移动官方网站首页入口 中国移动官网网页登录
如何续费美橙建站之星域名及服务?
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel如何使用Gate和Policy进行授权?(权限控制)
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何快速搭建高效香港服务器网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
LinuxCD持续部署教程_自动发布与回滚机制
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
如何有效防御Web建站篡改攻击?
如何在万网ECS上快速搭建专属网站?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
PHP 500报错的快速解决方法
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康

