求int a[]数组某个元素在int b[]中没有出现

/**
* 输出数组a中不在数组b中出现的元素
*
@author xqh
*
*/
public class ArrayFindNum {
   
public static void main(String[] args) {
       
int[] a = { 1, 3, 0, 4, 2 }; //数组a
        int[] b = { 1, 2, 3, 4, 5 }; //数组b
        List<Integer> list = new ArrayList<Integer>(); //数列
        Arrays.sort(b); //对数组b排序
        for (int i = 0; i < a.length; i++) {
           
if (!binarySearch(b, a[i])) // 采用二分查找法判断数组a中的元素是否出于在数组b中
list.add(a[i]); // 数列存放不出现在数组b中的元素
        }
        System.out.println(
"数组a中不在数组b中出现的元素:");
       
for (int i : list)
            System.out.print(i
+ " ");
    }

   
/**
     * 二分查找法
     *
@param arr 数组
     *
@param num 数值
     *
@return 找到则返回true,否则返回false
    
*/
   
private static boolean binarySearch(int[] arr, int num) {
       
int low = 0;
       
int high = arr.length - 1;
       
while (low <= high) {
           
int middle = (low + high) / 2;
           
if (arr[middle] == num) {
               
return true;
            }
else if (arr[middle] > num) {
                high
= middle - 1;
            }
else
                low
= middle + 1;
        }
       
return false;
    }
}

 

 

 

 

http://topic.youkuaiyun.com/u/20110509/19/d837e340-58d7-4c04-a1c9-641ec432ce8f.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值