package com.touchmain;
import java.util.Arrays;
public class Test {
/**
*
已知現有兩個常量數組,請將他們變爲一個有序的數組
* @param args
*/
public static void main(String[] args){
int [] arrA = {1,4,7,2,9};
int [] arrB = {3,5,8,2};
int [] arrC = new int[arrA.length+arrB.length];
//輸出定義好的A、B數組
System.out.println(Arrays.toString(arrA));
System.out.println(Arrays.toString(arrB));
//A數組加入C數組中
for (int i = 0; i < arrA.length ; i++) {
arrC[i] = arrA[i];
}
//B數組加入C數組中,開始位置是A數組的結束位置長度。
for (int j = 0; j <arrB.length ; j++) {
arrC[j+arrA.length] = arrB[j];
}
//系統工具合併數組
//System.arraycopy(arrA,0,arrC,0,arrA.length);
//System.arraycopy(arrB,0,arrC,arrA.length,arrB.length);
//輸出拼接好的C數組
System.out.println(Arrays.toString(arrC));
//比較數組中元素大小,進行排序。
compare(arrC);
//輸出比較排序後的C數組
System.out.println(Arrays.toString(arrC));
}
/***
* 循環比較數組中的每個元素,前面比後面的大則交換位置,已經比較過的最後元素不用比較
**/
private static void compare(int [] arrC){
for (int i = 0; i < arrC.length ; i++) {
for (int k = 0; k < arrC.length - i; k++) {
if (k == arrC.length -1 - i){
break;
}
if(arrC[k] >= arrC[k+1]){
int value = arrC[k];
arrC[k] = arrC[k+1];
arrC[k+1] =value;
}
}
}
}
}
結果輸出:
[1, 4, 7, 2, 9]
[3, 5, 8, 2]
[1, 4, 7, 2, 9, 3, 5, 8, 2]
[1, 2, 2, 3, 4, 5, 7, 8, 9]
/***
* 一次遍歷的方式,將數組內的數字(重複)進行有序排序
* @param shuzu
*/
public static void oneForCompare(int [] shuzu){
int i;
int temps;
for (i = 0; i< shuzu.length; i++)
{
count++;
if (i == shuzu.length -1){
break;
}
temps = shuzu[i];
if (shuzu[i+1]<shuzu[i])
{
shuzu[i] = shuzu[i+1];
shuzu[i+1] = temps;
i = -1;
}
}
}