2 qiuliang601567 qiuliang601567 于 2017.09.14 14:52 提问

Java 二分法查找最值问题。

例如数组 A= [ 5 , 6 , 7 , 1 , 2 , 3 , 4 ]我认为这是个比较特殊的数组,不用排序的方法,用二分法找到该数组的最大值或者最小值。

4个回答

qq_33535433
qq_33535433   2017.09.14 15:18

将这数组插入到二分搜索树中,直接get到最大值,如何写二分搜索树请看http://blog.csdn.net/qq_33535433/article/details/75264007

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.14 15:37

"不用排序的方法,用二分法找到该数组的最大值或者最小值。"

【首先】这不是一个特殊的数组
【其次】二分查找有个前,有序数组才能二分查找,,,无序的咋二分???

【无序数组如何二分?】答案是不能的,,至少本人未曾见过

q690080900
q690080900   2017.09.14 17:24

嗯...的确 二分法的前提就是得是一个有序数组 你这样不如直接遍历 找最小最大值

qq_30069409
qq_30069409   2017.09.14 17:28

我也是服了,你没见过就是没有?二分查找必须是有序的?你在说笑话吗?
这个题是可以的。
这种题类似于旋转数组这种类型,当你二分第一次的时候可以判断出数组的一段是有序的。既然知道了一段是有序的就看你想怎么继续做了。
不过这种题用二分局限性比较大。
顺便问一嘴,搞acm的吗?

qiuliang601567
qiuliang601567 回复wanwan_1996: 不不,就是上课一个题,我感觉这个前半部分和后半部分是有顺序的,我感觉就挺特殊的,就是那种不排序直接二分法查找。
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片