二分查找算法例子
二分查找算法是一个效率比较高的查找算法,它的算法思想是:将一段查找区域以某一数字(分割点)从中分为两部分(形象化为左右两部分),然后对左边一部分进行查找,当查找的词在左边区域时,那么对分割点减1,再进行查找,如果查找的结果是在右边区域时,那么对分割点加1,在右边区域进行查找。以下的例子为对一个字符串数组中的字符进行查找,代码具体如下:
private static int erfen(String query){
String[] strArr = {"a","d","e","l","w","c","s","k","o"};
int i = 0;
int k = strArr.length - 1;
while(k>=i){
//分割点
int mid = (i+k)>>1;
//如果delta<0,表明query在数组元素strArr[mid]之前
//如果delta>0,表明query在数组元素strArr[mid]之后
int delta = query.compareTo(strArr[mid]);
if (delta<0){
k = mid -1;
}else if (delta>0){
i = mid + 1;
}else{
return mid;
}
}
return i;
}
public static void main(String[] args) {
//返回e所在数组中的位置
System.out.println(erfen("e"));
}
如无转载说明,则均为本站原创文章,转载请注明:来源:子猴博客
随机日志
发表评论 | Trackback
