当前位置:网站首页>二分查找1-实现一个二分查找
二分查找1-实现一个二分查找
2022-08-03 05:25:00 【花开花落夏】
实现二分查找
一 题目
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
来源:力扣(LeetCode)
二 解题
二分查找是一个非常经典的算法,通常用于有序的数列。我们用三个指针来实现二分查找,使用left与right来划分区间,使用mid来标定一个值,mid=(left+right)/2.
当nums[mid]=target时,找到目标值的位置;
当nums[mid]<target时,目标值的可能区间在[mid,right]中;
当nums[mid]>target时,目标值的可能区间在[left,mid]中。
算法实现如下:
class Solution {
public int search(int[] nums, int target) {
int index = -1;
int left = 0, right = nums.length-1, mid;
while (left<=right){
mid = (left+right)/2;
if(nums[mid]==target){
index = mid;
break;
}else if(nums[mid]<target){
left = mid+1;
}else{
right = mid-1;
}
}
return index;
}
}

边栏推荐
猜你喜欢

opencv透视变化

ZEMAX | How to rotate any element around any point in space

VCC(电源)和 GND(地)之间电容的作用

对象の使用

各种cms getshell技巧

pandoc -crossref插件实现markdwon文档转word后公式编号自定义

自监督论文阅读笔记 Self-supervised Learning in Remote Sensing: A Review

Practice of MySql's Sql statement (try how many you can write)

ZEMAX | 在OpticStudio中建立扩增实境(VR)头戴式显示器

MySql的Sql语句的练习(试试你能写出来几道呢)
随机推荐
自监督论文阅读笔记: MoCoV2使用动量对比学习改进基线
建立平衡二叉树简单demo
STM32启动文件的选择
神经网络基础
Automatic ticket issuance based on direct reduction of China Southern Airlines app
opencv目标检测
虚拟地址空间布局
进程间通讯 (IPC 技术) - 信号
自监督论文阅读笔记 Multi-motion and Appearance Self-Supervised Moving Object Detection
自监督论文阅读笔记DisCo: Remedy Self-supervised Learning on Lightweight Models with Distilled Contrastive
动漫:海贼王女
电子元器件之电子变压器可分为哪几类?
ZEMAX | 在OpticStudio中建立扩增实境(VR)头戴式显示器
SolidWorks 操作视频 | 隐藏高手必备工具Defeature,让设计隐藏更彻底
Eight, the difference between the interface of the abstract class
ucos任务调度原理
芯片解密工作应该具备哪些条件?唯样商城
page fault-页异常流程
ZEMAX | 如何围绕空间中的任何点旋转任何元素
new / malloc / delete / free之间的区别