当前位置: 首页 > news >正文

算法19.0

注意事项:补药跳过一些课程   课程是循序渐进的

二分查找算法:

特点:最恶心 细节最多 最容易写出死循环的算法-----》最简单 

侧重点:算法原理   数组有序的情况X  

            模板(固定的格式): 补药死记硬背  理解之后再记忆 

                                          朴素二分模板  查找左边界的二分模板  查找右边界的二分模板

704. 二分查找 - 力扣(LeetCode)

暴力解法:

从左往右遍历一遍 找到元素就返回 没找到就返回-1

优化暴力解法:

随便找一个数 4  这样就可以把4之前的所有元素干掉(单调性)

同理找一个数字7  就可以把7后面之后所有的元素干掉

在一个数组中 随便找了一个点 发现拿这个值和target做比较划分了两个区域

其中根据根据规律可以有选择性的舍去一个区间  此时就称这个题有二段性

这个时候就可以使用二分查找

二段性:当我们发现一个规律  然后根据这个规律选取某个点之后  能把这个数组分成两部分 根绝规律能有选择性的舍去一部分  进而在另一个部分选择的时候 

为什么选择中间这个点?

实现步骤

细节问题

循环结束的条件  left>right (left=right的时候  其实也是没有使用过那个元素所以不完整)

二分查找算法为什么是正确的 

时间复杂度为什么快   logN  (log是非常快的  4X10的9次在log上面只需要32次)

下面是题目、效果图和代码:

class Solution {public int search(int[] nums, int target) {int left = 0 ;int right = nums.length-1;while(left <= right){    //注意循环条件 //int mid = (left+right)/2 ;  //有溢出的风险  left+right可能超出int的数据范围//优化 int mid = left+(right-left)/2;//这样的话中间点绝对不溢出if(nums[mid]<target) left=mid+1;else if(nums[mid]>target) right = mid-1;else return mid;}  return -1;}
}
//xiyu251029&1#3*1

http://www.dtcms.com/a/545011.html

相关文章:

  • 【第五章:计算机视觉-项目实战之推荐/广告系统】3.精排算法-(3)精排模块多目标融合:从线性融合到Bayes方程融合原理
  • 【详细教程】对拍 0 基础学习小课堂 [内附例题演示]
  • 在 Windows 系统中安装 Oracle、SQL Server(MSSQL)和 MySQL
  • 企业网站导航代码国外代码开源网站
  • 深圳网站开发公司哪家好平面设计岗位职责
  • mooc网站开发案例ip138域名查询
  • 黑白图片智能上色API技术文档 - 让你的老照片重获新生
  • 【Android】Dalvik 对比 ART
  • 【游戏设计】如何建立个人的游戏创意库
  • 手表电商网站湖南人文科技学院官网教务系统
  • 【软件可维护性测试:构建可持续演进更新的软件系统】
  • 【小白笔记】 while 与 for + break 的比较分析
  • STM32中死机 Crash dump 打印出函数调用关系
  • STM32的GPIOx_IDR 与 GPIOx_ODR
  • Rust 借用检查器(Borrow Checker)的工作原理:编译期内存安全的守护者
  • 仓颉语言核心技术深度解析:面向全场景智能时代的现代编程语言
  • 漳州住房和城乡建设部网站简单的页面
  • 架构论文《论负载均衡的设计与应用》
  • Linux frameworks 音视频架构音频部分
  • 【AI论文】PICABench:我们在实现物理逼真图像编辑的道路上究竟走了多远?
  • 设计模式之抽象工厂模式:最复杂的工厂模式变种
  • 设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
  • 网站数据库大小石家庄发布最新消息
  • 本地运行Tomcat项目
  • 大模型如何变身金融风控专家
  • 台州网站建设维护网页设计与制作教程杨选辉
  • 动力网站移动端模板网站建设价格
  • Windows 10终止服务支持:企业IT安全迎来重大考验
  • Mac os安装Easyconnect卡在正在验证软件包
  • 手机网站免费模板下载门户网站 销售