
正文
二分搜索java代码,java二分搜索算法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java计算2分法查找次数
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
这是二分法查找有序数组的算法,简单讲是把要查找的数与数组中间的数比较,如果小于则向前查找,如果大于则向后查找;再取中间的数比较,直至相等。
很明显你不能把middle的赋值语句设在循环语句的外面,在二分查找算法中,在执行一次查找后,middle是需要被重新赋值的,你所说的可以正确查找9只是一种巧合而已,因为第一次循环就能把9查出来。
相关问答
Q1: 用Java语言编写对整型数组进行二分查找的程序。
1、arr.insert(n); //用insert方法为arr中的成员数组变量赋值。} arr.display(); //用display方法显示arr中成员变量数组中的所有元素。arr.quickSort(); //用quickSort方法为arr成员变量数组中的元素按从小到大排序。
2、你的程序不对,二分查找 else if(a[mid]searchnum){ right=mid-1 } else left=mid+1;你写反了。
3、看文档上的解释:public static int binarySearch(int[] a,int fromIndex,int toIndex,int key)使用二分搜索法来搜索指定的 int 型数组的范围,以获得指定的值。
4、比较数组:通过 equals 方法比较数组中元素值是否相等。查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
5、④如果key值小于temp,则把数组中间位置作为下一次计算的终点;重复① ② ③。⑤如果key值等于temp,则返回数组下标,完成查找。实现代码。/** * description : 二分查找。
Q2: 关于java的binarySearch()方法
如果非要用二分法输出所有数组下标的话,很遗憾,实现不了,除非自己覆盖方法。二分法先排序,可以直接使用Arrays.sort(arr);。调用Arrays.binarySearch(arr,6);//比如要查找6的下标。
使用Collections类的二分查找之前需要对数据进行排序,否则返回的索引值是不确定的,因此你这里出现了负数。
使用二分搜索法来搜索指定的 int 型数数组,以获得指定的值。必须在进行此调用之前对数组进行排序(不管用什么,只要排序了就可以,推荐,通过 Arrays.sort(int[]) 方法)。如果没有对数组进行排序,则结果是不确定的。
关于二分搜索java代码和java二分搜索算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







