易截截图软件、单文件、免安装、纯绿色、仅160KB

Java实现 二分查找


/**
 * 使用二分查找的方式查询指定的值
 * @author ZhangYu
 * @data 2010-01-23
 */
public class BinSearch {
/**
* 用递归实现二分查找
* @param data -被查找的数组
* @param value -要查找的值
* @param left -查找范围的最小值
* @param right -查找范围的最大值
* @return 返回查找的下标,没有查找的值返回-1
*/
public int search(int[] data ,int value ,int left ,int right){
int mid = (right-left)/2 + left; //当前比较值的下标
/*
* 退出条件
*/
if(left > right){
return -1;
}
if(value == data[mid]){
return mid;
}else if(value > data[mid]){
return search(data ,value ,mid +1 ,right); //设置新的最小范围
}else if(value < data[mid]){
return search(data, value, left, mid - 1); //设置新的最大范围
}
return -1;
}

/**
* 有循环的方式实现二分查找
* @param data -被查找的对像
* @param value -要查找的值
* @return 返回查找的下标,没有查找的值返回-1
*/
public int search(int []data ,int value){
int left = 0; //查找范围的最小值
int right = data.length - 1; //查找范围的最大值
while(left <= right){
int mid = (right-left)/2 + left; //当前比较值的下标
if(value == data[mid]){
return mid;
}else if(value > data[mid]){
left = mid+1; //设置新的最小范围
}else if(value < data[mid]){
right = mid-1; //设置新的最大范围
}
}
return -1;
}

public static void main(String []args){
BinSearch bs = new BinSearch();
int [] data = {1,5,7,9,15,16,20,25,28,30,38};
System.out.println(bs.search(data, 5, 0, data.length-1));
System.out.println(bs.search(data, 7));
}
}


相关文档:

传智播客java学习 sql对象

我今天学习了Oracle数据库如何修改表的知识,是冯威老师讲的课,我做了简单的记录:
1.在表中插入新的列:
  alter table tablename
  add city varchar(2) default 'rr' //赋默认值
2.修改表中的列:
  alter table tablename
  modify city varchar(20)
3.删除表中的列:
  alter t ......

Java参数传递(经典,非原创)

1. 简单类型是按值传递的
  Java 方法的参数是简单类型的时候,是按值传递的 (pass by value)。这一点我们可以通过一个简单的例子来说明:
/* 例 1 */
/**
* @(&#35;) Test.java
* @author fancy
*/
public class Test {
   public static void test(boolean test) {
    &nb ......

[转]Java Web应用的Policy安全配置值得深思

信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
Author:kj021320
转载请注名出处。
Java应用程序环境的安全策略,详细说明了对于不同的代码所拥有的不同资源的许可,它由一个Policy对象来表达。
为了让applet(或者运行在SecurityManager下的一个应用程序)能够执行受保护的行为,例如读写文件,applet(或Jav ......

Java基于可扩充数组的向量实现(算法源码)

/* 高手之作,本人谨以收藏者身份拿出共享供大家参考! */
/*
 * 向量接口
 */
package dsa;
public interface Vector {
//返回向量中元素数目
 public int getSize();
//判断向量是否为空
 public boolean isEmpty();
//取秩为r的元素
 public Object getAtRank(int r)
 throws ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号