java怎么实现归并排序
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"java怎么实现归并排序",在日常操作中,相信很多人在java怎么实现归并排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java怎么实现归并排序"
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网科技有限公司图片
金融科技与互联网金融
互联网科技公司发展
上海喔噻互联网科技
腾讯科技 互联网女皇
壕鑫互联网络科技
睿民互联网科技
恒生科技互联网指数分析
欧洲十大科技互联网公司
汽车互联网创新科技园
互联网和黑科技的看法
武汉健翔互联网络科技有限公司
赶超互联网科技 微信多开
坤平互联网科技
2021互联网科技公司排名
广东工业互联网大赛深圳学泰科技
互联网相关科技技术
杭州融税互联网科技有限公司
互联网金融金融科技
前海云享互联网科技
互联网金融监管科技数据
互联网科技保险
互联网下的科技发展
唐信互联网科技 大连
温州喔噻互联网科技有限公司
武汉健翔互联网络科技有限公司
四川慕妮娅互联网科技有限公司
黑云互联网科技有限公司
南京一网一红互联网科技有限公司
中国科技和美国互联网