java基礎--陣列拼接排序
阿新 • • 發佈:2018-12-21
/** 需求:
- 實現兩個陣列組合並排序。
- 例如: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");//列印陣列中的每一個數據 } } }