没有bug的二分查找-递归写法
题目:在一个有序数组中查找指定的数,如果存在返回其数组下标,否则返回-1
package test;
/**
* 二分查找
* @author 硅谷探秘者(jia)
*/
public class TestMain2 {
static int a[]= {1,2,3,5,7,8,9,12,45,456,789,1234,45666,45648789};
static int f=2;
public static void main(String[] args) {
int t=find(0,a.length-1);
System.out.println(t);
}
public static int find(int left,int right) {
int temp = left+((right-left)>>>1);
if(left<=right) {
if(a[temp]==f) {
return temp;
}else if(a[temp]>f){
return find(left, temp-1);
}else {
return find(temp+1, right);
}
}else {
return -1;
}
}
}
评论区
请写下您的评论...
猜你喜欢
blog
算法-没有bug的二分查找
数据结构与算法
7490
科普:第一篇二分搜索论文是1946年发表,然而第一个没有bug的二分查找法却是在1962年才出现,中间用了16年的时间。定义在计算机科学中,二分查找(英语:binarysearch),也称折半搜索
blog
二叉树的遍历-(递归法)和(非递归法)
数据结构与算法
5309
整理二叉树的遍历-(递归法)和(非递归法)-笔记先序遍历、中序遍历、后续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
blog
归并排序(递归)- 数据结构与算法
数据结构与算法
1514
算法思想该算法使用递归法实现,思路为:每次递归将待排序数组在中间位置分成左右两组,分别对左右两个数组进行归并排序,递归的条件是数组长度必须大于等于3,所以当数组中只有两个数据的时候可以直接进行比较排
blog
并查集 算法分析
数据结构,算法基础
840
理一些不交集(DisjointSets)的合并及查询问题。有一个联合-查找算法(union-findalgorithm)定义了两个用于此数据结构的操作:
Find:确定元素属于哪一个子集。它可以被用
ofc
二叉树的所有路径
official
1228
径。说明:叶子节点是指没有子节点的节点。示例:输入:1/\23\5输出:["1-2-5","1-3"]解释:所有根节点到叶子节点的路径为:1-2-5,1-3解题思路递归得方式遍历二叉树(深度优先搜索),
其他
5886
1.没有vim命令2.使用apt-get命令安装命令如下:apt-getinstallvim3.执行过程可能会报错如下:1.如果进入容器时没有指定root用户,则可能会报错
blog
递归实现全排列算法 c++描述
数据结构与算法
5071
递归实现全排列算法c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
数据结构与算法
4600
递归实现合并两递增链表-合并后保持递增序列java描述数据结构:单链表算法:递归链表节点packageclub.test;/****链表节点*@authorjiajia
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。