有一个java对象Value,包括两个int字段a, b,有七个这样的对象放在数组Arr中,并且这七个对象中不存在a与b都相等的情况.请写一段程序并用二分法查找第一次批配在a=3,b=4的对象.已有的五个对象如下(8分)
1. a = 6, b = 2
2. a = 2, b = 2
3. a = 2, b = 3
4. a = 1, b = 5
5. a = 3, b = 4
6. a = 4, b = 5
7. a = 5, b = 1

解决方案 »

  1.   

    先按a的大小排序 再用二分法先匹配a
    然后再找b
      

  2.   

    直接查找一个就够了··因为上面的7个对象的a或者b都是a或者b中唯一的值··
      

  3.   

    以 a 排序
    a 相等的再以 b 排序
    用2个 二分查找
      

  4.   

    "先按照a排序,在按照b排序"-> 问题是第一次根据a来查找的话会要找到多个元素的集合,然后再对b用二分法查找。
    例如对于原贴的例子,我要找[a = 2, b = 2]的话,第一次找a = 2的元素必须返回2个元素:
    [a = 2, b = 2]
    [a = 2, b = 3]
    如何使用二分法查找多个元素的集合?
      

  5.   

    在排序好之后可以用1次二分法查找,查找的判断条件应该是把a和b作为一个条件,既检查a也检查b就行了。
      

  6.   

    list里面放的是对象,对象进行比较大小,得自己定义一个规则吧