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

做一个美食网站怎么做广州软件开发培训机构有哪些

做一个美食网站怎么做,广州软件开发培训机构有哪些,phpcmsv9中英文网站,大连建设网中标公司目录 前言 1. 二分查找#xff08;基础版#xff09; 2. 寻找左右端点 循环判断条件 求中间点 总结 前言 说起二分查找#xff0c;也是一种十分常见的算法#xff0c;最常听说的就是#xff1a;二分查找只能在数组有序的场景下使用#xff1b;其实也未必#xff0c;…目录 前言 1. 二分查找基础版 2. 寻找左右端点 循环判断条件 求中间点 总结 前言 说起二分查找也是一种十分常见的算法最常听说的就是二分查找只能在数组有序的场景下使用其实也未必只要能找到规律也依然可以使用本文我将分享一些有关二分查找算法的做题经验 1. 二分查找基础版 注意二分查找算法也并非是只能在数组有序的场景下使用只要数据具有 二段性 就可以使用 基础版的二分查找没有那么多弯弯绕绕以及边界情况下面是一个基础版本的示例 while( left right) {int mid left (right - left) / 2;if(nums[mid] target) right mid - 1;else if(nums[mid] target) left mid 1;else return mid; } 在计算中间点时比较推荐示例中的写法 int mid left (right - left) / 2; 这种方式可以有效的防止数据溢出 由此可以总结出基础版本的二分模板 while( left right) {int mid left (right - left) / 2;if(...) right mid -1;else if(...) left mid 1;else return ...; } 2. 寻找左右端点 这种方式的二分算法有比较经典的题目 力扣中的第34道题 这种类型再使用基础版本的二分就没法很好的解决 使用基础版本只能找到一组目标值中的某一个比如 nums [5,7,8,8,8,9]; // target 8 基础版本只能保证找到数组中的8目标值但是要知道目标值开始位置和解释位置就不行了还需要进行一些操作但这样就容易让时间复杂度降到 O(N)也就是所有值都是目标值的情况因此基础版本在这道题中并不是最优解这时就可以使用二分的进阶版寻找区间左右端点 怎么找左右端点 还是使用这个示例 nums [5,7,8,8,8,9]; 寻找端点版本主要分成两种情况设中间点为x 以寻找左端点为例以下的示例都是以求左端点 x targetleft mid 1在区间[leftright]中找x targetright mid 将数组划分成两个区间right为什么是等于mid就一目了然了 当mid在如图的位置时如果right mid 1那么剩下的区间就不会有target 较为难的点就是细节的处理这里很容易出错一旦出错就会成死循环 细节求中间点、循环条件 循环判断条件 判断条件是 while(left right){... } 不需要判断是否相等如果判断了就会死循环 x targetleft mid 1x targetright mid 比如 如果right left时还进入循环判断此时走的是 x targetright还是会在原来的位置这样就会造成死循环 求中间点 求中间点有两种 // 第一种 mid left (right - left) / 2;// 第二种 mid left (right - left 1) / 2; 他们的区别在于当数组元素为偶数的时候 第一种 第二种 求左端点只能使用第一种否则也会造成死循环 如果是第二种情况 假设区间只剩两个端点 使用第二种方法计算出的mid是右边的端点那么当满足 x targetleft mid 1时循环退出如果满足的是 x targetright mid就会出现死循环 而第一种 当满足 x targetleft mid 1时 left走到right位置循环结束 当满足的是 x targetright midright走到mid位置也就是left位置循环结束 总结一下 // 寻找左端点 while(left right) {int mid left (right - left) / 2;if(left target) left mid 1;else right mid; }// 寻找右端点 while(left right) {int mid left (right - left 1) / 2;if(right target) right mid - 1;else left mid; } 可以得出模板 // 寻找左端点 while(left right) {int mid left (right - left) / 2;if(...) left mid 1;else right mid; }// 寻找右端点 while(left right) {int mid left (right - left 1) / 2;if(...) right mid - 1;else left mid; } 提醒注意本文对二分进行了模板的总结切记不要一味的记忆模板要基于理解去使用 以下是一些题目练习 x的平方根 在排序数组中查找元素的第一个和最后一个位置 山脉数组的峰顶索引 总结 以上便是本文的全部内容希望对你有所帮助最后感谢阅读
http://www.w-s-a.com/news/759210/

相关文章:

  • 做网站媒体wordpress管理员账号数据库添加
  • php如何自己做网站wordpress怎么修改编辑代码
  • 网站建网站建设公司WordPress互联
  • 泊头市网站建设价格wordpress导航菜单位置
  • 怎么设立网站赚广告费网页制作素材模板图片
  • 做班级网站的目的网站设计制作公司需要什么资质
  • 济南做网站哪家好财政网站平台建设不足
  • php网站建设招聘网站开发与设计论文
  • 上海 网站建设平台 补贴网站开发招标文件范本
  • 延安网站建设公司电话手机上那个网站做农产品推广比较好
  • 增城哪家网站建设好如何做网站实名认证
  • 常州地区做网站个人购物网站需要备案吗
  • 网站建设公司 跨界鱼科技专业做服务器的网站都有哪些
  • 欧洲网站服务器网站建设费用计入什么科目
  • 网站的色调苏州策划网站模板建站公司
  • 怎么看网站用的什么后台公路建设项目可行性研究报告编制办法哪个网站查最新版
  • 可以看的网站的浏览器有哪些专业APP客户端做网站
  • 如何做网站推广自己的产品推荐个网站好吗
  • 网站经营范围wordpress注入点
  • 学校网站开发协议夫妻网络网站建设
  • 福州网站seo推广优化微信商家小程序怎么弄
  • 免费网站推广工具在游戏网站做中介合法
  • 网站建设前的规划网站建设公司六安
  • 公司注册网站开发的行业表述南宁在百度上建网站
  • 创建企业网站国内网站用django做的
  • 云主机网站的空间在哪制作微网站的平台
  • 长沙做网站 青创互联wordpress4.4.1
  • 宜昌哪里有专业做网站的网站开发做什么的
  • 3小说网站开发东莞网站公司哪家好
  • 做网站安全联盟解ps网站设计概述