同学太卷了,又加了个排序算法进去实现
import java.util.Arrays;
public class DataStructureTest1 {
public static void main(String[] args) {
int size1 = 10;
int size2 = 12;
int[] arr1 = createArray(size1);
int[] arr2 = createArray(size2);
// Arrays.sort(arr1);
System.out.println("第一个数组:"+Arrays.toString(arr1));
System.out.println("第二个数组:"+Arrays.toString(arr2));
quickSort(arr1,0,arr1.length-1);
quickSort(arr2,0, arr2.length-1);
merge(arr1,size1,arr2,size2);
}
private static int[] createArray(int size){
int[] num = new int[size];
for (int i = 0; i < num.length; i++) {
int r = (int) (Math.random()*100);
num[i] = r;
}
return num;
}
private static void merge(int[] arr1,int size1,int[] arr2,int size2){
// Arrays.sort(arr1);
// Arrays.sort(arr2);
int[] arr3 = new int[arr1.length+arr2.length];
int i=0,j=0,k=0;
while (i < size1 && j< size2){
if (arr1[i] <= arr2[j]){
arr3[k++] = arr1[i++];
}else {
arr3[k++] = arr2[j++];
}
}
if (i != arr1.length){
for (int a = i; a < arr1.length; a++) {
arr3[k++] = arr1[a];
}
}else {
for (int b = j; b < arr2.length; b++){
arr3[k++] = arr2[b];
}
}
System.out.println("合并排序后的数组:"+Arrays.toString(arr3));
}
private static void quickSort(int[] arr,int low,int high){
int i,j,temp,t;
if(low>high){
return;
}
i=low;
j=high;
temp = arr[low];
while (i<j) {
while (temp<=arr[j]&&i<j) {
j--;
}
//再看左边,依次往右递增
while (temp>=arr[i]&&i<j) {
i++;
}
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
arr[low] = arr[i];
arr[i] = temp;
quickSort(arr, low, j-1);
quickSort(arr, j+1, high);
}
}