java中常用算法—二分法查找
2016-02-16 19:09
405 查看
二分法查找算法
import java.util.Arrays;
public class Test3 {
public static int binarySearch(int[]a,int num) {
int low = 0;
int upper = a.length-1;
while (low<=upper) {
int mid = (low+upper)/2;
if (a[mid]<num) {
low = mid+1;
}else if(a[mid]>num){
upper = mid-1;
}else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int []a ={1,4,6,32,7,3,7,2,87,2,87,5,9};
//顺序查找
/*for (int i = 0; i < a.length; i++) {
if (a[i] == 7) {
System.out.println(i);
}
}*/
Arrays.sort(a);//排序
for(int aa : a){
System.out.print(aa+" ");
}
System.out.println();
System.out.println(binarySearch(a, 7));
}
}
import java.util.Arrays;
public class Test3 {
public static int binarySearch(int[]a,int num) {
int low = 0;
int upper = a.length-1;
while (low<=upper) {
int mid = (low+upper)/2;
if (a[mid]<num) {
low = mid+1;
}else if(a[mid]>num){
upper = mid-1;
}else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int []a ={1,4,6,32,7,3,7,2,87,2,87,5,9};
//顺序查找
/*for (int i = 0; i < a.length; i++) {
if (a[i] == 7) {
System.out.println(i);
}
}*/
Arrays.sort(a);//排序
for(int aa : a){
System.out.print(aa+" ");
}
System.out.println();
System.out.println(binarySearch(a, 7));
}
}
相关文章推荐
- Java中关于时区的哪些事
- JAVA进行基础的文件IO读写
- Java注解@Retention&@Inherited@Target@IntDef@Documented
- 初试spark java WordCount
- SpringMVC解决GET请求时中文乱码的问题
- struts2的jsp读取action参数
- Java api 入门教程 之 JAVA的文件操作
- 启动eclipse闪退,无法启动eclipse
- MyEclipse设置Java代码注释模板
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
- STS 断点有斜线不起作用的解决方法
- SpringMVC 处理客户端请求的过程
- Spring
- 关于struts2 的单例和多例及线程安全的问题
- java正则表达式特殊字符
- Java程序打印日历
- struts2 action获取jsp参数的三种方式
- 记录-java执行请求的URL
- Java中转UTC时间字符串(含有T Z)为local时间
- eclipse启动错误