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; }}