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   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: 不不,就是上课一个题,我感觉这个前半部分和后半部分是有顺序的,我感觉就挺特殊的,就是那种不排序直接二分法查找。
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
查找算法之二分法查找(JAVA)
public class BinarySearch { /** * 二分查找 * 简介: 在二分搜寻法中,从数列的中间开始搜寻,如果这个数小于我们所搜寻的数,由于数列已排序,则该数左边的数一定都小于要搜寻的对象, * 所以无需浪费时间在左边的数;如果搜寻的数大于所搜寻的对象,则右边的数无需再搜寻,直接搜寻左边的数。 * @param nums 待查找数组 * @num 待
实现二分法查找——java实现
java实现二分法查找,前提:要求待查找的数组已经是按照升序排好的。 package test; public class test { public static void main(String[] args) { int[] list = {2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79}; int i = B
Java实现二分法查找数组中的元素
二分法是有条件的:数组中的元素要有序排列 定义三个变量,min,mid,max,初始化min=0,max=数组长度-1;mid=(min+max)/2;
Java查找算法(一): 二分法查找
一. 什么是二分查找 二分查找又称为折半查找,该算法的思想是将数列按序排列,采用跳跃式方法进行查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。以此类推不断缩小搜索范围。 二. 二分查找的条件 二分查找的先决条件是查找的数列必须是有序的。 三. 二分查找的优缺点 优点:比较次数少,查找速度快,平均性能好;
递归和非递归两种方式实现二分法查找(java)
public class BinarySearch { public static void main(String[] args) { int[] arr = {1,3,5,7,9,11,13,15,17}; System.out.println(search(arr,13)); System.out.println(search1(arr,1,0,arr.length-1)
java二分法查找数组元素
/* 需求:定义一个函数接收一个数组对象和一个要查找的目标元素,函数要返回该目标元素在 数组中的索引值,如果目标元素不存在数组中,那么返回-1表示。 折半查找法(二分法): 使用前提必需是有序的数组。 */ class Demo12  { public static void main(String[] args)  { int[] arr = {
顺序查找和二分法查找(java代码)
顺序查找和二分法查找
java 实现二分法查找出数组重复数字
java 实现二分法查找出数组重复数字,如果存在能查到重复数字,最差时间复杂度是O(n^2),最小是O(nlogn)
c语言 二分法查找
c 二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找
Java常用8大排序算法+二分法查找法
排序算法分类:  1)插入排序(直接插入排序、希尔排序)  2)交换排序(冒泡排序、快速排序)  3)选择排序(直接选择排序、堆排序)  4)归并排序  5)分配排序(基数排序)  所需辅助空间最多:归并排序  所需辅助空间最少:堆排序  平均速度最快:快速排序  不稳定:快速排序,希尔排序,堆排序。  先来看看 8种排序之间的关系:      1.直接插入排序  (1)