2015-05-10 06:30:02

阅读( 83 )

/*二分法的前提是这个数组是从大到小或者从小到大的排序方式,以下是按照从小到大的方式*/

public class Test {

public static void main(String[] args) {

// 定义一个数组

int nums[] = { 1, 3, 6, 8, 9, 10, 12, 18, 20, 33, 34 };

// 欲查询的数字

int num = 35;

// 输出num在nums中的索引

System.out.println(“二分法查看数组中某数的索引为:” + dichotomy(nums, num));

}

/**

* 二分法查找

*

* @param nums 数组

* @param num 查找的数

* @return 返回num索引,如果不存在返回-1

*/

public static int dichotomy(int[] nums, int num) {

// 数组长度必须大于零

if (nums != null && nums.length > 0) {

// 开始索引

int start = 0;

// 结束索引

int end = nums.length – 1;

// 中间索引

int center = (start + end) / 2;

// 开始索引不能大于结束索引

while (start <= end) {

// 取中间索引值比较,如果相同,返回该索引

if (num == nums[center]) {

return center;

}

// 如果值在center右边或左边,重新定位start或end,重新计算center值

if (num > nums[center]) {

start = center + 1;

}

if (num < nums[center]) {

end = center – 1;

}

center = (start + end) / 2;

}

}

return -1;

}

}

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

java 二分法 应用_介绍一下java中的二分法运用相关推荐

  1. java正则表达式性能_译:Java 中的正则表达式性能概述

    译者:Darren Luo 1. 概述 在本快速教程中,我们将展示模式匹配引擎是如何工作的.我们还将介绍在 Java 中优化正则表达式的不同方式. 有关正则表达式的的使用介绍,请参阅此文. 2. 模式 ...

  2. java 添加注解_你知道Java中的package-info的作用吗?

    package-info.java对于日常业务开发的开发者来说,可能有点陌生,如果我们再项目中创建一个package-info.java,你会发现该类只有一个packge,如下 我们无法在该java文 ...

  3. java内存区_基于jvm java内存区域的介绍

    jvm虚拟机在运行时需要用到的内存区域.广泛一点就是堆和栈,其实不然,堆和栈只是相对比较笼统的说法,真正区分有如下几个 先上图一: 总的就是 java的内存模型 内存模型又分堆内存(heap)和方法区 ...

  4. java 自旋锁_搞懂Java中的自旋锁

    轻松搞懂Java中的自旋锁 前言 在之前的文章<一文彻底搞懂面试中常问的各种"锁">中介绍了Java中的各种"锁",可能对于不是很了解这些概念的同学 ...

  5. core java文献翻译_外文翻译--Java技术介绍(适用于毕业论文外文翻译+中英文对照).doc...

    毕业设计(论文)外文资料翻译 学 院: 信息工程学院 专 业: 计算机科学与技术 姓 名: XXXXXXXXX 学 号: XXXXXXXXX 外文出处: Cay s.Horstmann Core Ja ...

  6. java finally用法_深入浅析java中finally的用法

    finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下. 之前在写爬虫的时候数据 ...

  7. java console 交互_实例讲解java中Console类的用法

    java的Console类的使用方法及实例 java的Console类的使用方法及实例 JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备.如果你的Java程序要与Win ...

  8. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  9. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

最新文章

  1. 【机器学习】特征工程概述
  2. 代数系统思维导图_线性代数思维导图专题
  3. JavaScript 游动层onmouseover
  4. [vue] v-if和v-for的优先级是什么?如果这两个同时出现时,那应该怎么优化才能得到更好的性能?
  5. Ubuntu 解压 压缩.tar.gz 和 .gz 文件
  6. 手机组态软件 APP监控台达PLC C#全套源代码,C#开发上位机手机APP
  7. Windows下怎么更改文件扩展名
  8. 关于程序员抵制996的一些想法
  9. 核定征收的个体户,年营业额不超过120万,还需要缴纳个税吗?
  10. Unity3D人物模型精选——迷你卡通风格篇
  11. 简单的python爬虫--爬取Taobao淘女郎信息
  12. python3爬虫系列21之selenium自动化登录163邮箱并读取未读邮件内容
  13. 赋能 打造应对不确定性的敏捷团队 pdf_《创业书影音》本期推荐《赋能》
  14. LeetCode - 点菜展示表
  15. nyoj 1248-海岛争霸 //floyd变形
  16. 计算机专业概况,计算机专业概况介绍
  17. 你不知道的100个国外搜索引擎
  18. 简单回顾下过去这一年的工作
  19. WPF自定义控件 使用阿里巴巴图标
  20. 多个exe程序一起打包,按顺序安装

热门文章

  1. 史上最硬核的Linux依赖问题解决方案
  2. 【PC工具】在线格式转换工具,视频格式转换,视频转gif工具
  3. web开发·基本网页实现(基于CSS盒子模型+PS辅助使用)
  4. C#子线程中更新ui
  5. 分享几个在线生成网址二维码的API接口
  6. Erlang/OTP之gen_fsm行为模式
  7. 【v2.x OGE-example 第一节】 绘制实体
  8. 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
  9. C#集合类(HashTable, Dictionary, ArrayList,List)与HashTable线程安全
  10. [原创]微软拼音输入法2007(含64位版)