Java UpperBound
Java UpperBound
/**
* <html>
* <body>
* <P> Copyright 1994-2018 JasonInternational </p>
* <p> All rights reserved.</p>
* <p> Created on 2018年4月10日 上午9:46:32</p>
* <p> Created by Jason</p>
* </body>
* </html>
*/
package cn.ucaner.algorithm.search; /**
* Upper bound search algorithm.<br>
* Upper bound is kind of binary search algorithm but:<br>
* -It returns index of first element which is grater than searched value.<br>
* -If searched element is bigger than any array element function returns first index after last element.<br>
* <br>
* Behaviour for unsorted arrays is unspecified.
* <p>
* Complexity O(log n).
* <br>
* @author Bartlomiej Drozd <mail@bartlomiejdrozd.pl>
* @author Justin Wetherell <phishman3579@gmail.com>
*/
public class UpperBound { private UpperBound() { } public static int upperBound(int[] array, int length, int value) {
int low = 0;
int high = length;
while (low < high) {
final int mid = (low + high) / 2;
if (value >= array[mid]) {
low = mid + 1;
} else {
high = mid;
}
}
return low;
}
}
Java UpperBound的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 《徐徐道来话Java》(1):泛型的基本概念
泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...
- java泛型上下限
前言: java的泛型上下限不是很好理解,尤其像我这种菜鸡.反反复复看了好几遍了...,真是... 一.简单的继承体系 class Person{} class Student extends Per ...
- Effective java笔记(八),异常
57.只针对异常的情况才使用异常 try { int i = 0; while(true) range[i++].climb(); }catch(ArrayIndexOutOfBoundsExcept ...
- java多线程-信号量
Semaphore(信号量)是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失,或者像锁一样用于保护一个关键区域.自从 5.0 开始,jdk 在 java.util.concurrent 包 ...
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...
- Java排序算法——归并排序
import java.util.Arrays; //================================================= // File Name : MergeSor ...
- Java递归算法——二分查找
import java.lang.reflect.Array; import java.nio.Buffer; import java.util.Arrays; import java.util.Ra ...
- Java查找算法——二分查找
import java.lang.reflect.Array; import java.nio.Buffer; import java.util.Arrays; import java.util.Ra ...
随机推荐
- MQ消息机制如何确认消费了消息?
消息队列如何保证消息能百分百成功被消费 目前常用的消息队列有很多种,如RabbitMQ,ActiveMQ,Kafka...下面以RabbitMQ为例来讲如何保证消息队列中的信息能百分百被消费掉. 其中 ...
- 解决request.getSession().getServletContext().getRealPath("/")为null问题
今天把程序部署到服务器,发现异常,FileNotFound异常,很快定位到getServletContext().getRealPath("/");返回空的问题.这个问题通常是传递 ...
- Eclipse创建的Java Web项目,如何启用外置浏览器访问jsp或者html页面
当我们用Eclipse创建了一个Java Web项目,想访问一个jsp或者html页面时,通常会在目标页面(以jsp为例)上点击鼠标右键,选择[Run As]——>[Run on Server] ...
- 对pdf中的图片进行自动识别
对pdf中的图片进行自动识别 商务合作,科技咨询,版权转让:向日葵,135—4855__4328,xiexiaokui#qq.com 原理:增强扫描 效果:自动识别所有图片中的文字,可以选择.复制,进 ...
- hdfs 通过命令坏块监测和删除或者地址获取参数做监控
[root@nodecm.oldboy.org.cn /data/dfs/nn/current]# hdfs fsck -list-corruptfileblocksConnecting to nam ...
- 免费好用的SSH手机客户端
简单说一些,SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专 ...
- Day1作业2:多层菜单查询
流程图: code: #!/usr/bin/env python # encoding: utf-8 # Auther:ccorz Mail:ccniubi@163.com Blog:http://w ...
- ubuntu下vs code配置c++
链接地址:https://blog.csdn.net/u010648921/article/details/82628616 摘要:Ctrl+Shift+B, F5
- python logging模块日志输出
import logging logger = logging.getLogger(__name__) logger.setLevel(level = logging.INFO) handler = ...
- ubuntu 安装 typora
# or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE wget -qO ...