二分查找法(java版)
二分查找法也称为折半查找法,在有序的序列中使用二分法可以提高程序的执行效率。
典型的二分查找法代码
public int binarySearch1(int[] arr,int target){
int l = 0, r = arr.length - 1; // 在区间[l..r]的范围中寻找target
while(l <= r){ // 当l == r时,区间[l..r]依然是有效的
int mid = l + (r - l)/2; // 等价于(l + r) / 2,因为l + r 可能会产生整型溢出问题
if(target == arr[mid]){
return mid;
}
if (target > arr[mid]) {
l = mid + 1; // target在[mid + 1,r]中
}else{ // target < arr[mid]
r = mid - 1; // target在[l,mid - 1]中
}
}
return -1; // 没有target返回-1
}
也可以写成这样
public int binarySearch12(int[] arr,int target){
int l = 0, r = arr.length; // 在区间[l..r)的范围中寻找target
while(l < r){ // 当l == r时,区间[l..r)依然是有效的
int mid = l + (r - l)/2;
if(target == arr[mid]){
return mid;
}
if (target > arr[mid]) {
l = mid + 1; // target在[mid + 1,r]中
}else{ // target < arr[mid]
r = mid; // target在[l,mid)中
}
}
return -1; // 没有target返回-1
}
二分查找法(java版)的更多相关文章
- 二分查找问题(Java版)
二分查找问题(Java版) 1.一般实现 package search; /** * @author lei 2011-8-17 */ public class BinarySearch ...
- 二分查找法 java
前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...
- 算法:时间复杂度+二分查找法(Java/Go/Python)实现
导读 曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设计语言(如Java)开发业务代码,久而久之,对于数据结构和算法就变得有些陌生了,由于长 ...
- 学习练习 java 二分查找法
package com.hanqi; import java.util.*; public class Test5 { public static void main(String[] args) { ...
- java二分查找法
//二分查找法.必须有前提:数组中的元素要有序. public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = ; ...
- java for循环和数组--冒泡排序、二分查找法
//100以内与7相关的数 for(int a=1;a<=100;a++){ if(a%7==0||a%10==7||a/10==7){ System.out.print(a+ ...
- java学习之—递归实现二分查找法
/** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...
- Java冒泡排序,二分查找法
冒泡排序 int[] arr = {1,7,6,2,8,4}; int temp ; //只需 运行 5次 for (int i = 0; i < arr.length - 1; i++) { ...
- Java-数据结构与算法-二分查找法
1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...
随机推荐
- echart-折线图,数据太多想变成鼠标拖动和滚动的效果?以及数据的默认圈圈如何自定义圆圈的样式
1.数据太多怎么办???想拖拽,想滑动 dataZoom: [ { type: 'slider', } ] dataZoom: [ { type: 'inside', }] 两种功能都需要,还想调样 ...
- spring mvc 绑定参数据默认值,是否必传,(RequestParam(value="id",defaultValue="1",required=true) )
@RequestMapping(value = "/detail", method = RequestMethod.GET) public String newDetail(@Re ...
- C# 字符串的长度问题
string str = "aa奥奥"; 如果直接取 str.length,取的就是字符的长度,一个汉字也是一个字符,长度就是4. 一个汉字是两个字节,如果需要统计字节数,可以用下 ...
- UE4联网测试的快捷方法
工程中测试 创建bat文件,格式如下: UE4Editor.exe路径 工程文件名 [地图名及参数] -game [其他自定义参数] UE4Editor.exe路径表示虚幻编辑器相应版本的UE4Edi ...
- CG-CTF | Hello,RE!
菜狗开始向着pwn与re进军了(●'◡'●)[说白了,还是在水博客吧] 按r出flag: galf leW{ emoc _oT_ W_ER dlro }! 反一下:fla ...
- SQL读取表中不重复字段
通关关键字 distinct 将AlbumName字段中所以不重复的内容读出来.
- 快速获取批量处理Docker镜像SQL语句
.获取批量pull语句 select concat('docker pull develop-harbor.geostar.com.cn/', t.name, ':', t1.tag) name fr ...
- SQL数据库字段添加说明文字
1.查看指定表中的所有带说明文字的字段内容 SELECT *,OBJECT_NAME(major_id) AS obj_name FROM sys.extended_properties WHERE ...
- 基于Skyline的web开发(6.x)
多窗口对比 一个页面加载多个TerraExplorer3DWindow和SGWorld等只有第一个能用(即使用iframe也是一样) 所以我决定打开两个新页面实现多窗口对比,然后我在<主页面&g ...
- Openstack_通用技术_RPC 远程异步调用
目录 目录 RPC 一个通过 HTTP Request 调用操作函数的 RPC 实现样例 环境 接收 HTTP Request RPC 调用具体的操作函数 测试 RPC RPC: 同一个项目内的不同服 ...