基础算法系列 之归并排序

归并排序是一种独立的排序思想,其排序准则就是“先行拆分,小组排序;之后归并,再行排序”。代码如下:

public static void merge(int[]arr,int low,int m,int high){
    
    	
	int[]temp=new int[high-low+1];
	int i=low;
	int j=m+1;
	int index=0;
	while(i<=m && j<=high){
    
    
		if(arr[i]<=arr[j]){
    
    
			temp[index]=arr[i];
			i++;
		}else{
    
    
			temp[index]=arr[j];
			j++;
		}
		index++;
	}
	while(j<=high){
    
    
		temp[index]=arr[j];
		j++;
		index++;
	}
	while(i<=m){
    
    
  		temp[index]=arr[i];
  		i++;
 		index++;
 	}
	for(int k=0;k<temp.length;k++){
    
    
		arr[k+low]=temp[k];
	}
}

public static void mergeSort(int[]arr,int low,int high){
    
    
	int middle=(high+low)/2;
	if(low<high){
    
    
		mergeSort(arr,low,middle);
		mergeSort(arr,middle+1,high);
		merge(arr,low,middle,high);
	}
}
     	

猜你喜欢

转载自blog.csdn.net/langxiaolin/article/details/113058086
今日推荐