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

网站地图添加百度推广网站怎么做

网站地图添加,百度推广网站怎么做,ui设计培训机构好,电商巨头决定我们成为什么样人的,不是我们的能力,而是我们的选择。——《哈利波特与密室》二分查找是查找算法里面是很优秀的一个算法,特别是在有序的数组中,这种算法思想体现的淋漓尽致。一.题目描述及其要求请实现无重复数字的升序数组的…

决定我们成为什么样人的,不是我们的能力,而是我们的选择。——《哈利·波特与密室》


二分查找是查找算法里面是很优秀的一个算法,特别是在有序的数组中,这种算法思想体现的淋漓尽致。

一.题目描述及其要求

请实现无重复数字的升序数组的二分查找:

给定一个 元素升序的、无重复数字的整型数组 arr和一个目标值 target ,写一个函数搜索 arr中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1.

示例一:

输入:[-1,0,3,4,6,10,13,14],13
返回值:6
说明:13 出现在arr中并且下标为 6 

示例二:

输入:[],3
返回值:-1
说明:arr为空,返回-1  

示例三:

输入:[-1,0,3,4,6,10,13,14],2
返回值:-1
说明:2 不存在arr中因此返回 -1 

二.分治思想

分治即“分而治之”,“分”指的是将一个大而复杂的问题划分成多个性质相同但是规模更小的子问题子问题继续按照这样划分直到问题可以被轻易解决“治”指的是将子问题单独进行处理。经过分治后的子问题,需要将解进行合并才能得到原问题的解,因此整个分治过程经常用递归来实现。

1.逐个遍历思路:

本来我们可以遍历数组直接查找,每次检查当前元素是不是要找的值。

for(int i = 0; i <length; i++)if(arr[i] == target)return i;

2.逐个遍历出现的问题

但是这样这个有序的数组我们就没有完全利用起来。

我们想想,若是目标值比较小,肯定在前半区间,若是目标值比较大,肯定在后半区间,怎么评价大小?我们可以用中点值作为一个标杆,将整个数组分为两个区间,目标值与中点值比较就能知道它会在哪个区间,这就是分治的思维。

三分治思想具体做法:

  • step 1:从数组首尾开始,每次取中点值。

  • step 2:如果中间值等于目标即找到了,可返回下标,如果中点值大于目标,说明中点以后的都大于目标,因此目标在中点左半区间,如果中点值小于目标,则相反。

  • step 3:根据比较进入对应的区间,直到区间左右端相遇,意味着没有找到

代码实现:

int search(int*arr, int length, int target ) {if(length == 0) return -1;int left=0, right=length-1;while(left<=right) {int mid = left+(right-left)/2;if(arr[mid]==target) return mid;if(arr[mid]<target) left=mid+1;if(arr[mid]>target) right=mid-1;}return -1;
}

ps:int mid = left+(right-left)/2;与int mid=(left+right)/2是一样的,但是选择前者更安全,因为后者两个整数相加数据过于庞大可能会出现数据溢出的情况,所以采用前者更加可靠。

也可以这样写:mid = left+(right-left >> 1); +-大于位移运算的优先级 左移*2

本算法到这,其实二分查找可以分为几种情况来讨论,这里提供一种比较好理解的方案,具体算法大家可以参考相应资料自了解,大家加油。。。。。最近在做算法题目可以关注我,点个赞,有问题可以一起讨论。以后的几篇文章都讲解算法的题目。

http://www.yayakq.cn/news/665769/

相关文章:

  • 实用网站的设计与实现建网站麻烦吗
  • 湖滨网站建设东莞网站设计开发技能大赛
  • 如何用dw做网站广州番禺专业做网站
  • 乐山智顶网站建设外贸自建零售网站做仿牌
  • 装修公司网站asp源码怎么用ngrok做网站
  • 2017最佳网站设计杭州俄语网站建设
  • 广州网站建设公司怎么挑选系统优化软件
  • 视频网站如何做营销策划公司邮箱从哪里登录
  • 网站推广策划方案毕业设计免费网页空间
  • 网站后台生成文章很慢广州安全教育平台注册
  • 去什么网站发贴做推广wordpress设置多域名多站点
  • 廊坊开发网站公司wordpress博客用什么服务器
  • 建设网站需要的资质证书深圳的网站建设的公司
  • 专业网站制作公司名称网页设计师的认识
  • 文山州住房和城乡建设网站宿州网站建设公司哪家好
  • 网站配色原则网站建设seo网络推广
  • 大学生水果预定配送网站建设的项目规划书上位机软件开发工具
  • 浏览国外网站 dns大安市网站
  • 做算法题的网站自己做的网站安全吗
  • 苏州移动网站建设红色主题展馆设计
  • 甘肃省建设工程安全质量监督管理局网站网站数据库设计模板
  • 南平网站开发帮别人做网站必须要开公司
  • 谷歌云可以做网站吗微信软件定制开发
  • 在郑州建设网站这么做东莞网络推广代运营
  • 网站建设视频教程。亚马逊网站建设的意义
  • 那些影视解析网站怎么做的建设旅游网站的工作方案
  • 城阳天河小学网站建设做网站加班多吗
  • 网站运营公司哪家效果好运动服饰网站建设预算
  • 中山城市建设集团网站the word和 a wordpress
  • 羽毛球网站建设网站一台服务器可以建设几个网站