直接把a和b的数据复制到c里面去,然后对c进行排序import java.util.*;public class Test { public static void main(String[] args) { int[] a = new int[] {1, 2, 5, 7}; int[] b = new int[] {3, 4, 6, 8}; int[] c = new int[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); Arrays.sort(c); System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); System.out.println(Arrays.toString(c)); } }
经典的c语言小程序,我记得好像是2个有序序列合并吧。。我就那么做了。import java.util.Arrays;public class Test { public static void main(String args[]){ int[] a = {1,5,6,7,0}; int[] b = {9,5,6,7,8}; insertAndSort(a,b);
} public static void insertAndSort(int[] a,int[] b){ int[] c = new int[a.length+b.length]; Arrays.sort(a); Arrays.sort(b); int prevC=0; int prevA=0; int prevB=0; for(int i=0;i<a.length+b.length;i++){ if(prevA==a.length||prevB==b.length){ if(prevA==a.length){ c[prevC]=b[prevB]; prevB++; prevC++; } else{ c[prevC]=a[prevA]; prevA++; prevC++; } continue; } else if(a[prevA]<=b[prevB]){ c[prevC]=a[prevA]; prevA++; prevC++; } else if(b[prevB]<a[prevA]){ c[prevC]=b[prevB]; prevB++; prevC++; } } System.out.print(Arrays.toString(c)); } }
{
public static void main(String[] args)
{
int[] a = new int[] {1, 2, 5, 7};
int[] b = new int[] {3, 4, 6, 8};
int[] c = new int[a.length + b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
Arrays.sort(c);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(c));
}
}
public static void main(String args[]){
int[] a = {1,5,6,7,0};
int[] b = {9,5,6,7,8};
insertAndSort(a,b);
}
public static void insertAndSort(int[] a,int[] b){
int[] c = new int[a.length+b.length];
Arrays.sort(a);
Arrays.sort(b);
int prevC=0;
int prevA=0;
int prevB=0;
for(int i=0;i<a.length+b.length;i++){
if(prevA==a.length||prevB==b.length){
if(prevA==a.length){
c[prevC]=b[prevB];
prevB++;
prevC++;
}
else{
c[prevC]=a[prevA];
prevA++;
prevC++;
}
continue;
}
else if(a[prevA]<=b[prevB]){
c[prevC]=a[prevA];
prevA++;
prevC++;
}
else if(b[prevB]<a[prevA]){
c[prevC]=b[prevB];
prevB++;
prevC++;
}
}
System.out.print(Arrays.toString(c));
}
}