算法练习-二分查找

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;

}

}

相关推荐
不去幼儿园2 分钟前
【启发式算法】狼群算法(Wolf Pack Algorithm, WPA)算法详细介绍(Python)
python·算法·启发式算法·任务分配·集群智能
wydaicls18 分钟前
C语言 了解一下回调函数(钩子函数)的使用
c语言·开发语言
信码由缰20 分钟前
Java 运行时安全:输入验证、沙箱机制、安全反序列化
java
Dying.Light22 分钟前
Java基础复习-中-集合
java
java1234_小锋22 分钟前
PyTorch2 Python深度学习 - 数据集与数据加载
开发语言·python·深度学习·pytorch2
千码君201623 分钟前
Go语言:常量计数器iota的意义
开发语言·后端·golang·状态码·const·iota·常量
Felicity_Gao25 分钟前
uni-app 开发APP应用媒体处理与文件管理功能
java·uni-app·媒体
墨染点香39 分钟前
LeetCode 刷题【139. 单词拆分】
算法·leetcode·职场和发展
永远有缘1 小时前
四种编程语言常用函数对比表
java·开发语言·c++·python
Pocker_Spades_A1 小时前
Python快速入门专业版(五十三):Python程序调试进阶:PyCharm调试工具(可视化断点与变量监控)
开发语言·python·pycharm