package demo;
import java.util.Arrays;
public class P37 {
public static void main(String[] args) {
int[] arr={10,16,4,5,25,13,20};
sort(arr);
System.out.println(Arrays.toString(arr));
}
static int[] helper;
static void sort(int[] arr) {
helper = new int[arr.length];
mergeSort(arr,0,arr.length-1);
}
static void mergeSort(int[] arr , int s, int e){
if(s<e) {
int mid=s+((e-s)>>1);
mergeSort(arr, s, mid);
mergeSort(arr, mid+1, e);
merge(arr,s,mid,e);
}
}
static void merge(int[] arr , int s,int mid ,int e) {
for(int i=s;i<=e;i++) {
helper[i]=arr[i];
}
int origin=s;
int left=s;
int right=mid+1;
while(left<=mid && right<=e) {
if(helper[left]<=helper[right]) {
arr[origin]=helper[left];
origin++;
left++;
}
else {
arr[origin]=helper[right];
origin++;
right++;
}
}
while(left<=mid) {
arr[origin]=helper[left];
origin++;
left++;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?