二分搜索
来源:互联网 发布:js post方式下载文件 编辑:程序博客网 时间:2024/04/30 19:47
一个简单的分搜索算法
在一般情况下, 这个语句是不会出错的, 但是, 当low+high的值超过了最大的正int值 (2^31 - 1) 的时候(即当数据量较大时), mid会变成负值, 这个时候, 会抛出ArrayIndexOutOfBoundsException 异常。
或者
public static int bisearch(int key, int[] a) {int low = 0, high = a.length - 1, mid = 0;while (low <= high) {mid = (low + high) / 2;if (a[mid] < key) {low = mid + 1;} else if (a[mid] > key) {high = mid - 1;} else {return mid;}}return -1;}
在一般情况下, 这个语句是不会出错的, 但是, 当low+high的值超过了最大的正int值 (2^31 - 1) 的时候(即当数据量较大时), mid会变成负值, 这个时候, 会抛出ArrayIndexOutOfBoundsException 异常。
所以做如下修改即可:
int mid = low + ((high - low) / 2);
或者
int mid = (low + high) >>> 1;
0 0
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 不重新编译为PHP安装MySQL模块
- Spring MVC静态文件访问
- 工作中常用到的解压缩命令
- php基础知识
- 调试中的心理因素
- 二分搜索
- 深度优先搜索
- 【hadoop之翊】——hadoop配置ssh免密码登录,解决ssh设置好了依然需要输入密码的问题
- 自定义jsp标签入门
- day_2 servlet 三种开发方法
- C++primer学习笔记(1)
- ADB server didn't ACK 是怎么回事?安卓虚拟机无法安装App
- visual studio 2010 创建的MFC ActiveX 控件的工程 不能运行 提示:无法启动.ocx程序
- c# 在WinForm 窗体间传递信息(转换为VB.net)