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

做网站有哪些费用crm管理系统哪家好

做网站有哪些费用,crm管理系统哪家好,wordpress qq微信登陆地址修改密码,wordpress登录开发介绍: 二分查找算法#xff08;Binary Search#xff09;是一种在有序数组中查找目标元素的算法。 它的基本思想是通过将目标元素与数组的中间元素进行比较#xff0c;从而将搜索范围缩小一半。 如果目标元素等于中间元素#xff0c;则搜索结束#xff1b;如果目标元素小…介绍: 二分查找算法Binary Search是一种在有序数组中查找目标元素的算法。 它的基本思想是通过将目标元素与数组的中间元素进行比较从而将搜索范围缩小一半。 如果目标元素等于中间元素则搜索结束如果目标元素小于中间元素则继续在左半部分查找如果目标元素大于中间元素则在右半部分查找。 通过不断地将搜索范围缩小一半最终可以找到目标元素或确定目标元素不存在。 接下来通过例题介绍二分的不同写法 例题: 输入一个整数 n, 接下来一行输入 n 个整数(保证整数序列有序), 最后输入一个整数 m, 查找 m 在序列中的起始下标和结束下标 示例1: 输入: 5 1 2 2 4 5 2 输出: 1 2 解释: 2 在序列中的起始和结束位置是下标 1 和 2 代码讲解: 二分代码按照退出条件分为 while (l r)while (l r) 代码中的所有 l 和 r 都是序列的左右闭区间 代码中的所有 l r 1 和 l r 1 1 分别相当于 (l r) / 2 和 (l r 1) / 2。是按位右移, 整数向右位移一位相当于除2 代码中的所有 x, 都是目标值, 也就是要查找的值; 所有的 idx, 是答案, 也就是要查找数的起始下标或结束下标 先讲第一种: while (l r), 在l r时退出 // 查找起始下标 int l 0, r n - 1, idx 0; while (l r) {int mid l r 1; // 一分为3, [l, mid), [mid, mid], (mid, r]if (a[mid] x) l mid 1; // 如果当前中间值比 x 小, 需要去序列的右区间, 因为mid位置的数比 x 小, 那么左边的区间(l, mid]的所有数都比 x 小else if (a[mid] x) r mid - 1; // 同上else if (a[mid] x) // 等于答案时{idx mid;r mid - 1; // 我们要找的时起始的下标, 虽然此时a[mid] x, 但是mid的左边可能还有等于x的值, 所以我们要继续往左区间去找} }// 查找结束下标(代码中只有注释的地方和上面的代码不一样) int l 0, r n - 1, idx 0; while (l r) {int mid l r 1; // 一分为3, [l, mid), [mid, mid], (mid, r]if (a[mid] x) l mid 1; else if (a[mid] x) r mid - 1; else if (a[mid] x) {idx mid;l mid 1; // 我们要找的时结束的下标, 虽然此时a[mid] x, 但是mid的右边可能还有等于x的值, 所以我们要继续往右区间去找} }观察上面代码我们可以把a[mid] x的情况跟其他两种情况合并 // 查找起始下标 int l 0, r n - 1, idx 0; while (l r) {int mid l r 1; // 一分为3, [l, mid), [mid, mid], (mid, r]if (a[mid] x) l mid 1; else if (a[mid] x){idx mid;r mid - 1; // 继续往左区间找} }// 查找结束下标 int l 0, r n - 1, idx 0; while (l r) {int mid l r 1;if (a[mid] x){idx mid;l mid 1; // 继续往右区间找}else if (a[mid] x) r mid - 1; }下面讲第二种: while (l r) 在l r时退出 大家可以发现这种写法不需要 idx 这个变量来记录最终查找的x的起始下标或结束下标了, 因为最后l就是对应的起始下标或结束下标。r等于l, 所以用r也行 查找起始下标 int l 0, r n - 1; while (l r) {int mid l r 1; // 区间分成了两个 [l, mid] 和 (mid, r]if (a[mid] x) l mid 1;// 当a[mid] x的时候, r一直往左, 所以当有多个相同的x的话, 会查找到第一个else if (a[mid] x) r mid; // 因为a[mid]可能 x, 因为mid也可能满足条件, 所以区间变成[l, mid] }查找结束下标 int l 0, r n - 1, idx 0; while (l r) { int mid l r 1 1; // 区间分成了两个 [l, mid) 和 [mid, r]if (a[mid] x) r mid - 1;// 当a[mid] x的时候, l一直往右, 所以当有多个相同的x的话, 会查找到最后一个else if (a[mid] x) l mid; // 因为a[mid]可能 x, 因为mid也可能满足条件, 所以区间变成[mid, r] }接下来讲一下第二种查找结束下标的时候 为什么是 mid l r 1 1而不是 mid l r 1; c默认向0取整, 对于正整数你可以说是向下取整, 也就是 5 / 2 2, 当出现 l r - 1 的时候, 此时 mid (l r) / 2 向下取整后等于 r - 1 , 如果此时进入了a[mid] x的分支, 那么 l mid r - 1, 这时会发现 l 没有发生变化, 那么就会一直陷入死循环 先更到这里, 后面再补充 觉得写的不错的话, 点个赞吧
http://www.hkea.cn/news/14431478/

相关文章:

  • 北京市建设网站首页线下推广渠道
  • 做购物网站适合的服务器网站上的链接怎么做的
  • 雷山网站建设网站分析内容
  • wordpress 做大型网站最吉利旺财的公司名字
  • 系统的网站建设教程青岛网站设计价格
  • 网站建设专员网站建设的原因
  • 珠海做网站设计有哪些开通企业邮箱要钱吗
  • 网络推广文案有哪些seowhy论坛
  • 自己如何制作网站山东新闻 最新消息 今天
  • 织梦是怎么做网站郑州做网站的公司有哪些
  • 金坛企业网站建设公司手机兼职赚钱正规平台怎么找
  • 定制高端网站的公司阜阳市建设局网站
  • 建设一个网站的好处如何自学网页设计
  • 外链推广网站都有哪些一站式建设网站
  • 网站与域名的区别学生网站建设的基本流程
  • 汕头手机模板建站赣州网站建设好么
  • 广州小企业网站制作学设计的个人网页设计作品欣赏
  • wordpress付费剧集网站wordpress恢复源代码
  • 网站建设 繁体莘县网站开发
  • 北京学生做兼职的网站杭州seo营销
  • 雅安公司做网站网站备案用的幕布
  • 怎样能注册自己的网站家具设计网站大全
  • 做打鱼网站的代理wordpress域名404
  • 重庆网站seo建设手机端便民服务平台网站建设
  • 网站建设不包括哪个阶段开发区网站建设
  • 汕头公众号建设网站网站做兼容需要多少钱
  • 专业建站网产品网络推广电商网站开发数据库表
  • 微信公众号怎么创建优惠券手机网站排名优化软件
  • 社群电商的运营模式sem优化是什么
  • 利用模板如何制作网站海淘网站