原理
归并排序就是建立在归并操作上的一种排序算法,采用分治思想。将有序的子序列合并,从而得到完全有序的序列。
就是从子序列有序到总序列有序。
合并两个有序数组
合并[start,mid]和[mid+1,end]两个有序区间
public static void Sort(int[]array,int start,int mid,int end){
int left=start;
int right=mid+1;
int i=0;//临时数组下标
int[]cur=new int[end-start+1];//临时数组
//合并两个有序数组
while(left<=mid&&right<=end){
if (array[left]<=array[right]){
cur[i++]=array[left++];
}else{
cur[i++]=array[right++];
}
}
while (left<=mid){
cur[i++]=array[left++];
}while(right<=end){
cur[i++]=array[right++];
}
//将cur的元素搬移到array的对应位置
for (int j=0;j<cur.length;j++){
array[start+j]=cur[j];
}
}
递归 归并
注意这里的start和end就是每次的待排序区间,而[start,mid]和[mid+1,end]是经过排序后的两个有序区间

public static void mergerSort(int[]array,int start,int end){
if (start>=end){
return;
}
int mid=(start+end)/2;
mergerSort(array,start,mid);
mergerSort(array,mid+1,end);
Sort(array,start,mid,end);
}
归并排序是一种基于分治思想的排序算法,通过合并两个有序数组来达到完全排序的效果。文章介绍了归并排序的原理,并详细讲解了如何递归地进行归并操作,以对指定区间[start, end]进行排序。"
50044453,1128816,解决Jenkins安装gitlab-hook-plugin失败问题,"['Jenkins', 'gitlab集成', '插件管理', '问题解决', 'CentOS']
255

被折叠的 条评论
为什么被折叠?



