package sunfa;
//二分法查找
public class TestBinSearch {
public static void main(String[] args) {
/**
* 集合必须是排序好的,否则查不到。有多个相同的元素则只返回首先被找到的那一个。
* 参考:java.util.Arrays.binarySearch方法
*/
int[] arr={1,2,3,4,5,611,6,6,7,8,9};
int r=binSearch(arr, 6);
System.out.println(r);
}
public static int binSearch(int a[],int key){
int mid = a.length/2;
if(key==mid){
return mid;
}
int start=0;
int end=a.length-1;
while(start<=end){
mid = (end-start)/2+start;//避免(start+end)/2超过 int范围
if(key<a[mid]){
end = mid-1;
}else if(key>a[mid]){
start=mid+1;
}else{
return mid;
}
}
return -1;
}
}
分享到:
相关推荐
一个用于实现牛顿二分法求根的小程序。算法简单 用MATLAB写出
二分法求方程解的简单算法,可以自定义方程,进行计算
简单的做了一个二分法的算法,小于某个特定值后停止运行。
算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。 基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较, 如果当前位置arr[k]值等于key,则查找成功; 若key小于...
python实现三种简单优化算法
普遍适用的的二分法算法,非常简单方便。。。。。。。。。。。
传统的二分法是行之有效的,计算过程简单,程序容易实现,可在大范围内求根,但该方法收敛较慢,通过对二分法的改进,能够在其收敛速度上加以改善,更好的运用于各种非线性方程求近似根问题中。
用c语言写的简单的二分法解方程,但方程是指定的
1.2.3一个简单问题的求解过程 1.3现代常用算法概览* 1.3.1压缩算法 1.3.2加密算法 1.3.3人工智能算法 1.3.4并行算法 1.3.5其他实用算法 第2章算法分析基础 2.1算法分析体系及计量 2.1.1算法分析的评价体系 2.1.2算法...
今天看书时,书上提到二分法虽然道理简单,大家一听就明白但是真正能一次性写出别出错的实现还是比较难的,即使给了你充足的时间,比如1小时。如果你不是特别认真的话,可能还是会出一些这样那样的错误,所以就尝试...
这篇文章主要介绍了python有序查找算法 二分法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 二分法是一种快速查找的方法,时间复杂度低,逻辑简单...
本文实例讲述了Python有序查找算法之二分法。分享给大家供大家参考,具体如下: 二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2… 例如需要查找有序数组arr里面的某个...
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。
8.2.1 简单约瑟夫环算法 243 8.2.2 简单约瑟夫环求解 245 8.2.3 复杂约瑟夫环算法 247 8.2.4 复杂约瑟夫环求解 248 8.3 城市之间的最短总距离 250 8.3.1 最短总距离算法 250 8.3.2 最短总距离求解 253 8.4 ...
二分法、迭代法、牛顿法、弦截法、高斯列主消元法、LU分解法、迭代法等 导入到MYECLIPSE
├─01第一章【直播】FB面试官揭秘算法面试速成...├─09第九章【直播】简约而不简单——二分法学习的四重境界 │ 09简约而不简单——二分法学习的四重境界.mp4 │ ├─10第十章【互动】队列知识点从易到难 │ 10
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
java二分法排序源码 十大经典排序算法动画与解析,看我就够了!(配代码完全版) 欢迎关注 公众号 五分钟学算法,一起学习一起交流进步! 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部...
3.二分法.c 4.分段线性插值.c 5.复合梯形法.c 6.复合辛普森.c 7.改进欧拉法.C 8.高斯-赛德尔迭代法.cpp 9.高斯消去法.c 10.简单迭代.c 11.拉格郎日插值多项式.cpp 12.列主元元素消元.C 13.龙贝格算法.c 14.龙贝格...
在研究了大量的求平面点集凸包的算法基础上,提出了一...这样就得到四个简单多边形单调链,然后对单调链求凸点,时间复杂度为O(n),最后求得的每个凸点就是平面点集的凸壳,此算法总的时间复杂度不超过O(n log n)。