文档章节

Java语言实现二分法

fengsehng
 fengsehng
发布于 2016/11/09 09:18
字数 144
阅读 4
收藏 0

二分法是一个简单,高效,并广泛应用的查找方法

import java.util.arrays;
public class BinarySearch
{
   public static int rank(int key, int[] a)
   {
      //数组必须是有序的
      int lo = 0int hi = a.length - 1;
      while (l0 <= hi)
      {
         int mid = lo + (lo + hi) / 2;
         if (key < a[mid]) hi = mid - 1else if (key > a[mid]) lo = mid + 1;
     else return mid;
       }
       return -1;
    }
    public static void main(String[] args)
    {
       //自己创建的函数,读取一个Int数组
       int[] whiteList = In.readInts(args[0]);
       Arrays.sort(whiteList);
       //判断输入的int值是否是空
       while(!StdIn.isEmpty())
       {
          int key = StdIn.readInt();
          //如果不包含就打印key值
          if (rank(key,whiteList)
         StdOut.println(key);
    }
    }
} 

© 著作权归作者所有

共有 人打赏支持
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
Android编程之SparseArray详解

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

天下杰论
2013/06/24
0
2
148. Sort List - LeetCode

Solution 148. Sort List Question 题目大意:对链表进行排序 思路:链表转为数组,数组用二分法排序 Java实现:

yysue
07/14
0
0
278. First Bad Version - LeetCode

Question 278. First Bad Version Solution 题目大意:产品有5个版本1,2,3,4,5其中下一个版本依赖上一个版本,即版本4是坏的,5也就是坏的,现在要求哪个版本是第一个坏的。 思路:二分法...

yysue
08/07
0
0
RichFaces自动构建树实现

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

菜根乱谭
2009/10/08
0
0
【JDK7】新特性(5) fork/join 框架

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

5W1H-
2012/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
31分钟前
0
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
21
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
4
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部