public class YouXuWuXuPaiXu {
/**
* 数组,有序,无序
*/
public static void main(String[] args){
//有序数组
int[] ARR_YX = {9,8,7,5,3,1};//{1,23,45,56,67,78,89,90,100,109};
//无序数组
int[] ARR_WX = {590,2,59};
int[] arr = PaiXuChaRu(ARR_YX, ARR_WX);
int length = arr.length;
for(int i = 0; i < length; i ++){
System.out.println(arr[i]);
}
}
public static int[] PaiXuChaRu(int[] arr_yx,int[] arr_wx){
int flag = 0;
int length_yx = arr_yx.length;
int length_wx = arr_wx.length;
int length = length_yx + length_wx;
if(arr_yx[0] > arr_yx[length_yx - 1]){
//有序数组是降序
flag = 1;
}else if(arr_yx[0] < arr_yx[length_yx - 1]){
//有序数组是升序
flag = -1;
}else{
//特殊情况
flag = 0;
}
arr_wx = PaiXu(arr_wx, flag);
int[] arr = new int[length];
arr = ChaRu(arr_yx, arr_wx, flag);
return arr;
}
//根据有序数组排序方式将无序数组排序
public static int[] PaiXu(int[] arr, int flag){
int temp;
int length = arr.length;
for(int i = 0; i < length - 1; i ++){
for(int j = i + 1; j < length; j ++){
if(flag == 1){
if(arr[i] < arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}else if(flag == -1){
if(arr[i] > arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}else{
System.out.println("数组排序方式错误");
}
}
}
return arr;
}
//把按照有序数组排序方式排序后的无序数组插入有序数组
public static int[] ChaRu(int[] arr_yx, int[] arr_wx, int flag){
int length = 0;
int length_yx = arr_yx.length;
int length_wx = arr_wx.length;
length = length_yx + length_wx;
int[] arr = new int[length];
int temp = 0;
for(int i = 0; i < length_yx; i ++){
if(i < length_yx){
arr[i] = arr_yx[i];
}
}
for(int j = length_yx; j < length; j ++){
arr[j] = arr_wx[temp];
temp ++;
}
arr = PaiXu(arr, flag);
return arr;
}
}