算法练习-二分查找

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;

}

}

相关推荐
还是鼠鼠6 小时前
《黑马商城》Elasticsearch基础-详细介绍【简单易懂注释版】
java·spring boot·spring·elasticsearch·搜索引擎·spring cloud·全文检索
如竟没有火炬6 小时前
LRU缓存——双向链表+哈希表
数据结构·python·算法·leetcode·链表·缓存
Greedy Alg7 小时前
LeetCode 236. 二叉树的最近公共祖先
算法
牧羊人_myr7 小时前
Maven核心功能与项目构建详解
java·maven
掘根7 小时前
【Qt】绘图
开发语言·qt
爱吃生蚝的于勒7 小时前
【Linux】零基础学会Linux之权限
linux·运维·服务器·数据结构·git·算法·github
量子物理学7 小时前
Eclipse Mosquitto 在小内存下怎么修改配置文件
java·服务器·eclipse
咖啡续命又一天7 小时前
python 自动化采集 ChromeDriver 安装
开发语言·python·自动化
程序员鱼皮7 小时前
让老弟做个数据同步,结果踩了 7 个大坑!
java·后端·计算机·程序员·编程·职场