62,625
社区成员
发帖
与我相关
我的任务
分享
public class Demoarray {
@Test
public void test() {
float[] a = {1.2f,2.3f,3.4f,4.5f,5.6f};
float[] b = {9.8f,8.7f,7.6f,6.5f,5.4f,4.3f};
float[] arr = sort(a,b);
for (float f : arr) {
System.out.println(f);
}
}
private float[] sort(float[] a, float[] b) {
ArrayList<Float> list = new ArrayList<>();
for (Float temp : a) {
list.add(temp);
}
for (Float temp : b) {
list.add(temp);
}
Collections.sort(list);
System.out.println(list);
float[] arr = new float[list.size()];
for (int i = 0; i < arr.length; i++) {
arr[i] = list.get(i);
}
return arr;
}
}
能实现你的基本需求,没做什么优化
public static float[] sort(float[] a,float[] b) {
float[] f = new float[a.length+b.length];
int l=a.length-1;
int r=0;
int j=0;
while(l>=0 && r<b.length){
if(a[l] >= b[r]){
f[j++] = a[l--];
}else{
f[j++] = b[r++];
}
}
while(l>=0){
f[j++]=a[l--];
}
while(r<b.length){
f[j++]=b[r++];
}
return f;
}