Java 二分法查找
2015-08-10 12:14
561 查看
public class DichotomySearch {
public static void main(String[] args) {
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(search(arr, 12));
System.out.println(search(arr, 45));
System.out.println(search(arr, 67));
System.out.println(search(arr, 89));
System.out.println(search(arr, 99));
}
public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
public static void main(String[] args) {
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(search(arr, 12));
System.out.println(search(arr, 45));
System.out.println(search(arr, 67));
System.out.println(search(arr, 89));
System.out.println(search(arr, 99));
}
public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
相关文章推荐
- Java 快速排序 快排
- java计算当前周开始日期&结束日期
- mybatis与spring3.1整合----
- java线程研究---(4)暂停Thread:sleep
- java多线程实现
- Hadoop2.x eclipse下编程环境配置
- 使用MyEclipse开发第一个Web程序
- 【JNI】Java调用C函数
- cmd安装weblogic12c的时候总是说jre不是有效的JDK
- 防止表单的重复提交
- java程序的换行符/n怎么写?
- 在Java中“\t”与空格的区别及其意义
- 杭电ACM2042java做法
- Eclipse抛出GC overhead limit exceeded异常问题的分析与解决
- 理解Java对象序列化
- JAVA Cannot find class [×××] for bean with name '××' defined in class path resource [×××] 问题解决方法
- java 多态
- struts2框架原理
- struts2框架原理
- Android开发效率—Eclipse快捷键