吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 850|回复: 4
收起左侧

[学习记录] 二分查找

[复制链接]
dxxbjl 发表于 2023-3-30 11:36
给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1
整理题目要求:
1、一个数组,其内元素升序,无重复数字
2、给出一个target,要求再这个数组中找到这个数,返回所在位置
3、如果数组中不存在这个数,返回-1



思路一:在一个 元素有序无重复 的数组中 查找指定的值,满足二分查找思路二:for循环,一个一个对比。如果这个数比较靠后或不存在,效率低
[Java] 纯文本查看 复制代码
[size=3]    public int search (int[] nums, int target) {
        //定义开始和结尾
        int start =0;
        int end =nums.length-1;
        
        while(start <= end){
            //存放中值
            int modle = (start+end)/2;
            if(nums[modle]==target){
                return modle;
            }else if(nums[modle] > target){
                //中间值 > 目标值, 缩小范围,end应该是原中值前一个值
                end = modle-1;
            }else{
                //中间值 < 目标值, 缩小范围,start应该是原中值后一个值
                start = modle+1;
            }
        }
        //循环结束还没找到,说明没有这个数,返回-1
        return -1;[/size]
    }


免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
xuson + 1 + 1 我很赞同!
iopnm + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

luke88715 发表于 2023-3-30 12:05
坐等思路二
熊猫拍板砖 发表于 2023-3-30 12:42
二分变种:找山峰,无重复环型数组找最值,有重复环形数组找最值,等等
WuYule 发表于 2023-3-30 13:04
为什么变量名是modle,中值用mid更容易理解吧。
JuncoJet 发表于 2023-3-30 14:40
没啥意义,数据排序都老半天,二叉树完爆
starkcccc 发表于 2023-4-3 12:43
可以再讲讲那些左边界和右边界的,统一一下框架更好了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表