算法练习-二分查找

public class test1 {

/**

* @param args

*/

/*文字说明

* 需求:在有序数组A中查找1target

* 如果找到返回索引,如果找不到返回-1

* 设n为数组长度;i=0;j=n-1

* 如果i>j,结束查找,没找到

* 设mid=(i+j)/2

* 如果target<A[mid]说明 target在mid的左边

* 所以j=mid-1

* 如果target<A[mid]说明target在mid的右边

* 所以 i=mid+1

* A[mid]=tartget说明找到了,返回mid

* */

public static void main(String[] args) {

// TODO Auto-generated method stub

int []arr={1,2,3,4,5};

System.out.println(Basic(arr,4));

}

public static int Basic(int arr[],int target){

int n=arr.length;

int i=0,j=n-1;

while(i<=j)

{

int mid=i+(j-i)/2;//防止整数溢出

if(target>arr[mid]){

i=mid+1;

}

if(target<arr[mid]){

j=mid-1;

}

if(arr[mid]==target){

return mid;

}

}

return -1;

}

}

相关推荐
冷雨夜中漫步3 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
JH30734 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
颜酱5 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919105 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878385 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
Coder_Boy_5 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934735 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
DuHz6 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
invicinble6 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
Polaris北极星少女6 小时前
TRSV优化2
算法