Begin (Binary Search)
来源:互联网 发布:java无法加载主类 编辑:程序博客网 时间:2024/05/22 00:55
开通博客记录自己的学习过程是每个程序员都应该做的事情。之前因为太懒,一直没开始这个must do的事情。。。今天开始第一篇博文,本人算法实在不行,之前根本没学过,就从最简单的二分查找开始吧。
public class BinarySearch {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
BinarySearch bs = new BinarySearch();
System.out.println(bs.binarySearch(array, 5));
}
public int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while(left <= right) {
int middle = (right + left) / 2;
if(array[middle] == target) {
return middle;
} else if(array[middle] > target) {
right = middle - 1;
} else {
left = middle + 1;
}
}
return -1;
}
}
在这里有一点需要注意,如果left+right大于int的上限的话,就会溢出。所以最好改为middle = left / 2 + right / 2;
- Begin (Binary Search)
- Binary search
- Binary Search
- Binary Search
- binary search
- binary search
- Binary Search
- binary search
- binary search
- binary search
- binary search
- binary search
- binary search
- Binary Search
- Binary search
- Binary Search
- Binary Search
- Binary Search
- Android那些事儿之自定义进度条
- 扇区、磁道、柱面和簇的介绍http://blog.csdn.net/kuxinr/article/details/8472385
- 32、AWT(Abstract Window Toolkit)
- CSS中webkit属性的简单使用
- FDT-扁平设备树--(3)
- Begin (Binary Search)
- uboot中的内存测试方法
- 关于机器学习的综述论文收集
- 严重: Exception starting filter struts2 java.lang.NullPointerException
- 三个小方法:交换字符(无buffer)、统计阶乘结尾0的个数、统计整数数组中连续数字的最大和
- OracleDBConsoleorcl无法启动_错误代码2的解决
- Android Camera架构浅析
- 正则表达式判定手机号码(终极版)
- SVN保存用户后修改登陆用户