两个数组A、B,其中一个数组存放500个不重复的数字,另外一个存放10000个不重复的数字用java实现:查出两个表中相同的数据并打印出来用认为最简单、最省时的算法谢谢!!!!

解决方案 »

  1.   

    先说下我的思路:
    1.先将数组A和B来次快排序
    2.for(i=0;i<500;)
       { 
         for(j=0;j<10000;)
         {
            if(A[i]<B[j])
                i++;
            else if(A[i]>B[j])
                j++;
            if(A[i]=B[j])
            {i++; j++; System.out.print(A[i]);}
         }
       }
      

  2.   

    更正一下
    2.for(i=0,j=0;i<500&&j<10000;)
       { 
            if(A[i]<B[j])
                i++;
            else if(A[i]>B[j])
                j++;
            if(A[i]=B[j])
            {i++; j++; System.out.print(A[i]);}
       }
      

  3.   

    顺便问一下 Arrays.sort(long a) 的排序低层的实现,会不会很费时间呀?如果不浪费时间的话:我试想把两个都排序,然后用二分法再做递归,
                        不知道这样会不会更省一点时间
                        
                        如果Arrays.sort(long a)排序会耗费很多时间的话,
                        那我还是比较赞同楼上的看法的