Java合併兩個有序數組

合併排序,將兩個已經排序的數組合併成一個數組,其中一個數組能容下兩個數組的所有元素

public class MergeArray {
	public MergeArray(){
		
	}
	
	public static ArrayList<Integer> mergeArrays(int[] arrayOne, int[] arrayTwo){
		int arrayOneLen = arrayOne.length;
		int arrayTwoLen = arrayTwo.length;
		ArrayList<Integer> resultArray = new ArrayList<Integer>();
		int i= 0, j=0;
		
		while(i<arrayOneLen || j<arrayTwoLen){
			if(i==arrayOneLen && j<arrayTwoLen){
				resultArray.add(arrayTwo[j]);
				j++;
			}else if(i<arrayOneLen && j==arrayTwoLen){
				resultArray.add(arrayOne[i]);
				i++;
			}else{
				if(arrayOne[i]<=arrayTwo[j]){
					resultArray.add(arrayOne[i]);
					i++;
				}else if(arrayOne[i]>arrayTwo[j]){
					resultArray.add(arrayTwo[j]);
					j++;
				}
			}
		}
		
		return resultArray;
	}
	
	public static void main(String[] args) {
		int[] arrA = {1,3,5,7,8,9,11,12};
		int[] arrB = {2,4,6,8,10,12,13};
		
		ArrayList<Integer> arrList = mergeArrays(arrA,arrB);
		
		for(Integer intItem:arrList ){
			System.out.println(intItem);
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章