两个有序数组,求合并后的中间大的数。要求效率最高。

来源:互联网 发布:手机音序器软件 编辑:程序博客网 时间:2024/03/28 19:16
前几天笔试的题目,当时挺蒙的,主要是纸上写不能调试,完整代码如下:
public static void main(String[] args) {        int b[]={1,6,7,8,10};        int a[]={2,3,5,8,9,};         System.out.println();         System.out.println("中间的数为:"+choice(a,b));}public static int choice(int a[],int b[]){int c[]=new int[a.length+b.length];for(int i=0,j=0;i<a.length;i++){if(c[i]==0){c[i]=a[j];j++;}  }for(int i=0,j=0;i<c.length&&j<b.length;i++){if(b[j]<c[i])    {for(int k=a.length +j-1;k>=i;k--){c[k+1]=c[k];}c[i]=b[j];j++;}if(c[i]==0){c[i]=b[j];j++;}}for(int k:c)    {System.out.print(k+",");}System.out.println();return c[(a.length+b.length)/2-1];}

代码如下:
0 0