没有bug的二分查找-递归写法

硅谷探秘者 4022 0 0

题目:在一个有序数组中查找指定的数,如果存在返回其数组下标,否则返回-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;
		}
	}
}

评论区
请写下您的评论...
暂无评论...
猜你喜欢
数据结构与算法 7490 科普:第一篇搜索论文是1946年发表,然而第一个bug却是在1962年才出现,中间用了16年时间。定义在计算机科学中,(英语:binarysearch),也称折半搜索
数据结构与算法 5309 整理叉树遍历-()和(非)-笔记先序遍历、中序遍历、后续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
数据结构与算法 1514 思想该算使用实现,思路为:每次将待排序数组在中间位置成左右两组,别对左右两个数组进行并排序,条件是数组长度必须大于等于3,所以当数组中只两个数据时候可以直接进行比较排
数据结构,算法基础 840 理一些不交集(DisjointSets)合并及询问题。一个联合-(union-findalgorithm)定义了两个用于此数据结构操作: Find:确定元素属于哪一个子集。它可以被用
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用户,则可能会报错
数据结构与算法 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 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。