文档章节

数据结构:二分查找 java

_无问西东
 _无问西东
发布于 08/19 23:20
字数 179
阅读 5
收藏 0

二分查找的前提是有序存储,利用顺序存储和元素排序

/**
 * 二分查找,查找成功,返回下标记
 * @param values
 * @param begin
 * @param end
 * @param key
 * @param <T>
 * @return
 */
public static <T extends Comparable<? super T>> int binarySearch(T values[], int begin, int end, T key) {

    while(begin <= end) {
        int mid = (begin + end) / 2;
        if(key.compareTo(values[mid]) == 0) {
            return mid;
        } else if(key.compareTo(values[mid]) < 0) {
            end = mid -1;
        } else {
            begin = mid +1;
        }
    }

    return -1;
}

/**
 * 
 * @param values
 * @param key
 * @param <T>
 * @return
 */
public static <T extends Comparable<? super T>> int binarySearch(T values[], T key) {
   return binarySearch(values,0,values.length -1, key);
}

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
_无问西东
粉丝 1
博文 55
码字总数 90507
作品 0
朝阳
高级程序员
私信 提问
Android编程之SparseArray详解

最近编程时,发现一个针对HashMap<Integer, E>的一个提示: 翻译过来就是:用SparseArray<E>来代替会有更好性能。 那我们就来看看源码中SparseArray到底做了哪些事情: 一、构造 从构造方法我...

天下杰论
2013/06/24
0
2
【JDK7】新特性(5) fork/join 框架

对于框架的原理,可以阅读 Doug Lea 的文章“A Java Fork/Join Framework”:了解 Fork/Join 模式的实现机制和执行性能。 原理解析:fork分解,join结合。这个框架的本质是将一个任务分解成多...

5W1H-
2012/12/11
0
0
RichFaces自动构建树实现

Java代码 public class TreeNode{ private String value;//树节点的值 private String label;//树节点显示标签 private bo ... [阅读全文] JavaEye推荐 【杭州】高薪招聘控件高级开发工程师(...

菜根乱谭
2009/10/08
0
0
如何理解并掌握 Java 数据结构

一说起“数据结构”可能很多同学都又交给老师了。但是实际工作中如果做得深入一些,特别是越往上发展,越大公司越离不开数据结构。本场 Chat 作者将带领大家重温《Java 数据结构》,讲解的内...

valada
04/12
0
0
Java实现的二分查幸运飞艇平台出租找算法[递归]

二分查找又幸运飞艇平台出租 haozbbs.comQ1446595067 称折半查找,它是一种效率较高的查找方法。 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先...

oskksk
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jrebel 激活服务,在springboot上面的进行热部署

1.安装JRebel 下载Jrebel插件,官网需要翻墙下载,需要的可以在csdn的下载区去进行下载 打开idea,File->settings 然后重启idea 2.破解JRebel 首先HELP -> JRebel -> Activation 在jrebel se...

glen_xu
53分钟前
1
0
设置版头的图片+网页布局

1.div的background-image(推荐) 2.div+image 1.是只有部分图,2是压图 1.frame 2.js(推荐) 因为frame不好设置大小

木之下
56分钟前
0
0
MyBatis组件之缓存实现及使用

一 .概述 先讲缓存实现,主要是mybatis一级缓存,二级缓存及缓存使用后续补充 Mybatis缓存的实现是基于Map的,从缓存里面读写数据是缓存模块的核心基础功能; 除核心功能之外,有很多额外的附...

Ala6
今天
1
0
SpringBoot中使用@RequestBody时如何自定义需要转换的日期格式

SpringBoot序列化和反序列化Json时默认使用的是Jackson(例如使用@RequestBody反序列化前端传递过来的Json字符串时), 当我们前端使用Json字符串传递到后台时日期格式可能是时间戳(即long类...

帅得拖网速
今天
1
0
可自定义扩展底部列表对话框ListBottomSheetDialogFragment

因为需要,为了方便,构建了一个可以自定义扩展的底部列表对话框,可以应付大部分场景。 效果图如下: 1.默认实现: 2.自定义列表实现 3.自定义头部和列表实现 一.可实现功能 1.默认可实现通...

明月春秋
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部