Java 二分法查找最值问题。

4个回答

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

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

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

2 年多之前 回复

#include<stdio.h> int main() { int a[6]; int i,c; int low=0; int high=5; int mid; for(i=0;i<6;i++) scanf("%d",&a[i]); scanf("%d",c); for(i=0;i<6;i++) { mid=(high+low)/2; if(c==a[mid]) printf("%d",mid); if(c>a[mid]) low=mid+1; if(c<a[mid]) high=mid-1; } if(c!=a[mid]) printf("sorry"); } 若找到输出：数所在的下标，否则输出sorry 如何修改

python：用递归方法编写二分法查找函数 程序报错

java的二分法怎么写？？

java容器中的二分法查找

Java语言高分悬赏：如何在双向有序链表的基础上，实现二分法查找的算法，要求写出完整的binary_search程序

Java语言高分悬赏：如何在双向有序链表的基础上，实现二分法查找的算法，要求写出完整的binary_search程序

#include <stdio.h> int binary_search_recursive(int arr[], int left, int right, int query); int main () { int arr[10]; int left, right, query; int i , res_r; printf ("请输入数据："); for (i = 0; i <= 9; i++) scanf ("%d" , &arr[i]); printf ("输入区间："); scanf ("%d%d" , &left , &right); printf ("输入要查找的数据："); scanf ("%d" , &query); res_r = binary_search_recursive(arr , left , right , query); printf ("%d\n" , res_r); return 0; } int binary_search_recursive(int arr[], int left, int right, int query) { int low = left , high = right , mid; int flag = 0; mid = (low + high) / 2; if (low > high) flag = -1; if (query == arr[mid]) flag = 1; if (arr[mid] > query) binary_search_recursive(arr , low , mid - 1 , query); else binary_search_recursive(arr , mid + 1 , high , query); if (flag == 1) return mid; if (flag == -1) return -1; }

def half_seek(point, seqence): a = len(readsx) b = a/2 if point <= readsx[b]: c = readsx[:b + 1] a = len(c) b = a/2 if point <= c[b]: c = c[:b + 1] a = len(c) b = a/2 else: c = c[b:] a = len(c) b = a/2 if point <= c[b]: c = c[:b + 1] a = len(c) b = a/2 else: c = c[b:] a = len(c) b = a/2 if point <= c[b]: else: c = readsx[b:] a = len(c) b = a/2 if point <= c[b]: c = c[:b + 1] a = len(c) b = a/2 else: c = c[b:] a = len(c) b = a/2 if point <= c[b]: c = c[:b + 1] a = len(c) b = a/2 格式不对。。。。。我就不粘贴了。。。。怎么写个循环呢？ 我是想写个函数以后用，目的是给一个值，给了一个由小到大的数列list形式，确定这个给的数能排哪个位置？

``` class fun{ // TODO Auto-generated method stub public static void Bisektion() { float ymiddle = (float)0.0; float yleft = (float)0.0; float yright = (float)0.0; float a = 0; float b = (float)3; for(int i = 0;i <=10000;i++) { float c = (float)((a+b)/2); float x = c; ymiddle =(float) Math.pow(x, 3)-3*x-3; // 带入C， C 居于方程的中间 yleft =(float) Math.pow(a, 3)-3*a-3; yright =(float) Math.pow(b, 3)-3*b-3; if (ymiddle*yleft>0) { a = c; if(i==10000) { System.out.println("Die Resultat:"+c); } }else { b = c; if(i==10000) { System.out.println("Die Resultat:"+c); } } } } } public class Bisektionsverfahren { public static void main(String[] args) { fun.Bisektion(); } } ``` 上面是我写的程序，但是有一个东西完全没有思路，就是如何设置这个循环，尽可能达到double或者float值的极限呢？也就是能达到的最精确的值。

function erfenfa(\$a,\$value,\$star,\$end) { if ( \$star > \$end ) { return "数据 \$value 不在范围内"; } echo "开始从 \$star - \$end 之间寻找 <br>"; \$middle = floor( (\$star+\$end)/2 ); \$middle_value = \$a[\$middle]; if ( \$value == \$middle_value ) { return true; } elseif ( \$value > \$middle_value ) //从左边找 { \$end = \$middle-1; erfenfa(\$a,\$value,\$star,\$end); } elseif ( \$value < \$middle_value ) //从右边找 { \$star = \$middle+1; erfenfa(\$a,\$value,\$star,\$end); } } \$length = count(\$a); \$star = 0; \$end = \$length-1; \$value = 50; echo "用二分法查找 \$value <br>"; \$s = erfenfa(\$a,\$value,\$star,\$end); var_dump(\$s);

C语言初学者来求教，关于二分法

C语言二分法求值（请帮忙找下问题）

ArrayList源码分析(入门篇)

ArrayList源码分析 前言： 写这篇博客的主要原因是，在我上一次参加千牵科技Java实习生面试时，有被面试官问到ArrayList为什么查找的速度较快，插入和删除的速度较慢？当时我回答得不好，很大的一部分原因是因为我没有阅读过ArrayList源码，虽然最后收到Offer了，但我拒绝了，打算寒假学得再深入些再广泛些，下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList，也为

String s = new String(" a ") 到底产生几个对象？

loonggg读完需要3分钟速读仅需 1 分钟大家好，我是你们的校长。我之前讲过，这年头，只要肯动脑，肯行动，程序员凭借自己的技术，赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

MySQL数据库面试题（2020最新版）

HashMap底层实现原理，红黑树，B+树，B树的结构原理 Spring的AOP和IOC是什么？它们常见的使用场景有哪些？Spring事务，事务的属性，传播行为，数据库隔离级别 Spring和SpringMVC，MyBatis以及SpringBoot的注解分别有哪些？SpringMVC的工作原理，SpringBoot框架的优点，MyBatis框架的优点 SpringCould组件有哪些，他们...

《经典算法案例》01-08：如何使用质数设计扫雷（Minesweeper）游戏