当前位置:网站首页>二分查找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;
}
}

边栏推荐
- ZEMAX | 在设计抬头显示器(HUD)时需要使用哪些工具?
- opencv目标检测
- MMU 介绍-[TBL/page table work]
- SQLMAP介绍及使用
- 设备树(devicetree)-dts语法
- 自监督论文阅读笔记 Incremental-DETR:Incremental Few-Shot Object Detection via Self-Supervised Learning
- 二、Exception和Error有什么区别?
- 二叉树常见的问题和解决思路
- 常见的电子元器件分类介绍
- 自监督论文阅读笔记 Self-supervised Label Augmentation via Input Transformations
猜你喜欢
随机推荐
ZEMAX | 如何倾斜和偏心序列光学元件
VCC(电源)和 GND(地)之间电容的作用
【DC-5 Range Penetration】
STM32启动文件的选择
【第二周】卷积神经网络
PCB设计经验之模拟电路和数字电路区别为何那么大
Convolutional Nerual Nertwork(CNN)
softmax和最大熵
常见的电容器有哪些?唯样商城
MySql【后面附有练习题】
C# 数组之回溯法
自监督论文阅读笔记SELF-SUPERVISED SPECTRAL MATCHING NETWORK FOR HYPERSPECTRAL TARGET DETECTION
What is parametric design, let's understand it through practical operation?| SOLIDWORKS How-To Videos
window下VS2022封装静态库以及调用静态库
电子元器件之电子变压器可分为哪几类?
A.1#【内存管理】——1.1.3 page: struct page
自监督论文阅读笔记 DenseCL:Dense Contrastive Learning for Self-Supervised Visual Pre-Training
自监督论文阅读笔记DisCo: Remedy Self-supervised Learning on Lightweight Models with Distilled Contrastive
自监督论文阅读笔记 Self-Supervised Visual Representation Learning with Semantic Grouping
自监督论文阅读笔记 Incremental-DETR:Incremental Few-Shot Object Detection via Self-Supervised Learning








