java怎么实现归并排序
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"java怎么实现归并排序",在日常操作中,相信很多人在java怎么实现归并排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java怎么实现归并排序"
千家信息网最后更新 2025年01月23日java怎么实现归并排序
这篇文章主要介绍"java怎么实现归并排序",在日常操作中,相信很多人在java怎么实现归并排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java怎么实现归并排序"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
public class MergeSort {
public static int arr[] = {2,4,7,8,9,4,5,1,2,3,6,8,7,8,54,4,2,58,47,5,8,4,2,5,0,0};
public static void main(String[] args) {
sort(0,arr.length-1); //排序
print(); //打印
}
//拆分
public static void sort(int left,int right){
if(left >= right)
return;
//递归终止条件,一个子数组只有一个或两个元素
if(right-left==1){
if(arr[left]>arr[right]){
int t = arr[left];
arr[left] = arr[right];
arr[right] = t;
}
return;
}
//递归分解
int mid = (left + right)/2;
sort(left,mid);
sort(mid+1,right);
//合并
merge(left,mid,right);
}
//合并
public static void merge(int left,int mid,int right){
int i = left;
int j = mid+1;
int k = 0;
//开辟临时数组,合并两个有序子数组
int temp[] = new int[right-left+1];
while(i<=mid && j<=right){
if(arr[i] temp[k++] = arr[i++];
}else{
temp[k++] = arr[j++];
}
}
while(i<=mid){
temp[k++] = arr[i++];
}
while(j<=right){
temp[k++] = arr[j++];
}
//将临时数组合并到原来数组中
k = 0;
for(i = left;i<=right;i++){
arr[i] = temp[k++];
}
}
/**
* 打印
*/
public static void print(){
for(int a:arr){
System.out.print(a+",");
}
System.out.println();
}
}
归并排序,平均复杂度nlogn
到此,关于"java怎么实现归并排序"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
排序
数组
学习
两个
更多
j++
递归
帮助
复杂
实用
有序
接下来
个子
元素
只有
复杂度
文章
方法
条件
理论
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库查询所有人的工龄
网络技术与应用刊物
科技金融公司是互联网公司嘛
深圳社交电商软件开发公司
premed数据库
数据库支持数据导出到表格
asp 软件开发
制造执行系统软件开发企业
嘉定区创新软件开发收费套餐
联邦式数据库
sql服务器连接不上
银发网络安全
大学生网络安全应该注意的问题
动软 创建数据库对象失败
广东创新服务器厂家
郑州网络安全科技馆位置
服务器跨年时差问题
高中网络安全教育第二节
山西精英网络技术服务项目
陕西金融网络安全宣传员大练兵
网信办服务器漏洞扫描
网络安全渗透测试服务
光猫路由器指定连接服务器
郑州电脑软件开发哪家实惠
国务院关于网络安全审查意见
信息网络安全英语作文
工程软件开发厂家供应
服务器芯片市场会变吗
苹果软件开发用苹果手机么
体育软件开发统计图