亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

歸并排序

標簽:
Java 算法
import java.util.Arrays;

/**
 * 归并排序
 * @author 123
 *
 */
public class Sort8 {
	public static void merge(int[] A,int left,int right){
		int middle = (left+right)/2;
		int[] B = new int[middle-left+1];
		int[] C = new int[right-middle];
		int i1 = 0,j1 = 0;
		//原数组前半部分赋值给B[]
		for(int i=left;i<=middle;i++){
			B[i1] = A[i];
			i1++;
		}
		//原数组后半部分赋值给C[]
		for(int j=middle+1;j<=right;j++){
			C[j1] = A[j];
			j1++;
		}
		int i2 = 0,j2 = 0,index = left;
		//排序
		while(i2<B.length&&j2<C.length){
			if(B[i2]<=C[j2]){
				A[index] = B[i2];
				i2++;
			}else{
				A[index] = C[j2];
				j2++;
			}
			index++;
		}
		//将未排完部分直接放到数组末尾
		while(i2==B.length&&j2<C.length){
			A[index]=C[j2];
			j2++;
			index++;
		}
		while(j2==C.length&&i2<B.length){
			A[index]=B[i2];
			i2++;
			index++;
		}
		System.out.println("Stage  "+Arrays.toString(A));
	}
	public static void mergeSort(int[] A,int left,int right){
		//如果一组分好数组只有1个元素,返回
		if(left==right){
			return;
		}else{
			int middle = (left+right)/2;
			mergeSort(A,left,middle);
			mergeSort(A,middle+1,right);
			merge(A,left,right);
		}
	}
}

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消