java 二分法 应用_介绍一下java中的二分法运用
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中的二分法运用相关推荐
- java正则表达式性能_译:Java 中的正则表达式性能概述
译者:Darren Luo 1. 概述 在本快速教程中,我们将展示模式匹配引擎是如何工作的.我们还将介绍在 Java 中优化正则表达式的不同方式. 有关正则表达式的的使用介绍,请参阅此文. 2. 模式 ...
- java 添加注解_你知道Java中的package-info的作用吗?
package-info.java对于日常业务开发的开发者来说,可能有点陌生,如果我们再项目中创建一个package-info.java,你会发现该类只有一个packge,如下 我们无法在该java文 ...
- java内存区_基于jvm java内存区域的介绍
jvm虚拟机在运行时需要用到的内存区域.广泛一点就是堆和栈,其实不然,堆和栈只是相对比较笼统的说法,真正区分有如下几个 先上图一: 总的就是 java的内存模型 内存模型又分堆内存(heap)和方法区 ...
- java 自旋锁_搞懂Java中的自旋锁
轻松搞懂Java中的自旋锁 前言 在之前的文章<一文彻底搞懂面试中常问的各种"锁">中介绍了Java中的各种"锁",可能对于不是很了解这些概念的同学 ...
- core java文献翻译_外文翻译--Java技术介绍(适用于毕业论文外文翻译+中英文对照).doc...
毕业设计(论文)外文资料翻译 学 院: 信息工程学院 专 业: 计算机科学与技术 姓 名: XXXXXXXXX 学 号: XXXXXXXXX 外文出处: Cay s.Horstmann Core Ja ...
- java finally用法_深入浅析java中finally的用法
finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下. 之前在写爬虫的时候数据 ...
- java console 交互_实例讲解java中Console类的用法
java的Console类的使用方法及实例 java的Console类的使用方法及实例 JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备.如果你的Java程序要与Win ...
- java comparator相等_详解Java中Comparable和Comparator接口的区别
详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...
- java实现递归算法_如何在Java中实现二进制搜索算法而无需递归
java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...
最新文章
- 【机器学习】特征工程概述
- 代数系统思维导图_线性代数思维导图专题
- JavaScript 游动层onmouseover
- [vue] v-if和v-for的优先级是什么?如果这两个同时出现时,那应该怎么优化才能得到更好的性能?
- Ubuntu 解压 压缩.tar.gz 和 .gz 文件
- 手机组态软件 APP监控台达PLC C#全套源代码,C#开发上位机手机APP
- Windows下怎么更改文件扩展名
- 关于程序员抵制996的一些想法
- 核定征收的个体户,年营业额不超过120万,还需要缴纳个税吗?
- Unity3D人物模型精选——迷你卡通风格篇
- 简单的python爬虫--爬取Taobao淘女郎信息
- python3爬虫系列21之selenium自动化登录163邮箱并读取未读邮件内容
- 赋能 打造应对不确定性的敏捷团队 pdf_《创业书影音》本期推荐《赋能》
- LeetCode - 点菜展示表
- nyoj 1248-海岛争霸 //floyd变形
- 计算机专业概况,计算机专业概况介绍
- 你不知道的100个国外搜索引擎
- 简单回顾下过去这一年的工作
- WPF自定义控件 使用阿里巴巴图标
- 多个exe程序一起打包,按顺序安装
热门文章
- 史上最硬核的Linux依赖问题解决方案
- 【PC工具】在线格式转换工具,视频格式转换,视频转gif工具
- web开发·基本网页实现(基于CSS盒子模型+PS辅助使用)
- C#子线程中更新ui
- 分享几个在线生成网址二维码的API接口
- Erlang/OTP之gen_fsm行为模式
- 【v2.x OGE-example 第一节】 绘制实体
- 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
- C#集合类(HashTable, Dictionary, ArrayList,List)与HashTable线程安全
- [原创]微软拼音输入法2007(含64位版)