1. 程式人生 > >java基礎--陣列拼接排序

java基礎--陣列拼接排序

/** 需求:

  • 實現兩個陣列組合並排序。
  • 例如:arr1 = {1,10,7,5,100,78}
  • arr2 = {99,54,2,46,28}
  • 將兩個數組合併成一個數組,並且排序後輸出
  • 思路:
  • 1 定義兩個陣列,並賦值
  • 2 定義第三個陣列,其長度等於前兩個陣列長度的和
  • 3 將陣列1數值賦值給陣列3,從0-arr1.length
  • 4 將陣列2數值賦值給陣列3,從arr1.length-arr3.length
  • 5 遍歷陣列3,將其輸出
  • 6 排序
  • 定義中間變數temp
  • for外迴圈,遍歷陣列3,從0開始
  • for內迴圈,遍歷陣列3,從1開始
  • 判斷,if,如果0<1,則將0給temp;1給0;temp給0;
  • 這一步其實就是如果後一個數比前一個數大,則兩個數換位,否則不換
  • 7 迴圈結束,遍歷陣列3,將其輸出 */
 ...
public class Test7_3 {
	public static void sort(int[] a){
		int temp;//定義中間變數
		for (int i = 0; i < a.length; i++) {
			for (int j = i+1; j < a.length; j++) {
				if (a[i]<a[j]) {
					temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}	
	}
	public static void main(String[] args) {
		int []arr1 = {1,10,7,5,100,78};
		int []arr2 = {99,54,2,46,28};
		int []arr3 = new int[arr1.length + arr2.length];//定義陣列,長度是arr1和 arr2兩個陣列長度之和。
		for(int i = 0;i < arr1.length ; i++){
			arr3[i] = arr1[i];//將arr1中的所有資料儲存到arr3相應的位置
		}
	//	for(int i = arr1.length; i < arr1.length+arr2.length;i++){
	//		arr3[arr1.length + i] = arr2[i];//將arr2中的資料儲存到arr3陣列中,注意儲存的位置。
	//	}
		for (int i = 0; i < arr2.length; i++) {
			arr3[arr1.length + i] = arr2[i];
		}
		for(int i = 0; i < arr3.length; i++){	//遍歷整個陣列
			System.out.print(arr3[i]+"\t");//列印陣列中的每一個數據
		}
		System.out.println();
	//排序,降序排列
		
		sort(arr3);
		/*int temp;//定義中間變數
		for (int i = 0; i < arr3.length; i++) {
			for (int j = i+1; j < arr3.length; j++) {
				if (arr3[i]<arr3[j]) {
					temp = arr3[i];
					arr3[i] = arr3[j];
					arr3[j] = temp;
				}
			}
		}
		*/
		for(int i = 0; i < arr3.length; i++){	//遍歷整個陣列
			System.out.print(arr3[i]+"\t");//列印陣列中的每一個數據
		}
	}
}