加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.cn/)- 专有云、图像技术、经验、数据治理、专属主机!
当前位置: 首页 > 站长资讯 > 评论 > 正文

JVM架构体系与GC命令全梳理,建议收藏

发布时间:2021-02-12 18:11:19 所属栏目:评论 来源:互联网
导读:队列 例子:滑动窗口最大值 队列回忆: 火车站买票应该都经历过,窗口小姐姐每次服务排在最前面的那个人,买完票则从头部离开,后面人往前一步接替离开的人继续购票,这就是典型的队列结构。 计算机中的队列和其类似,先到先得,先入先出,每个元素从尾部入

 队列

例子:滑动窗口最大值

队列回忆:

火车站买票应该都经历过,窗口小姐姐每次服务排在最前面的那个人,买完票则从头部离开,后面人往前一步接替离开的人继续购票,这就是典型的队列结构。

计算机中的队列和其类似,先到先得,先入先出,每个元素从尾部入队,从头部处理完出队
 

4 查找第一个大于等于给定值的情况

  • 如果nums[mid]小于要查找的值,那么我们需要查找在[mid+1,right]之间,所以此时更新为left=mid+1
  • 如果nums[mid]大于给定值value,这个时候需要查看nums[mid]是不是我们需要找的第一个值大于等于给定值元素,如果nums[mid]前面没有元素或者前面一个元素小于查找的值,那么nums[mid]就是我们需要查找的值。相反
  • 如果nums[mid-1]也是大于等于查找的值,那么说明查找的元素在[left,mid-1]之间,所以我们需要将right更新为mid-1

 查找第一个大于等于给定值的情况

  • 如果nums[mid]小于要查找的值,那么我们需要查找在[mid+1,right]之间,所以此时更新为left=mid+1
  • 如果nums[mid]大于给定值value,这个时候需要查看nums[mid]是不是我们需要找的第一个值大于等于给定值元素,如果nums[mid]前面没有元素或者前面一个元素小于查找的值,那么nums[mid]就是我们需要查找的值。相反
  • 如果nums[mid-1]也是大于等于查找的值,那么说明查找的元素在[left,mid-1]之间,所以我们需要将right更新为mid-1

图中呢,我们以查找 17 这个数字为例,L 和 R 所圈定的,就是当前的查找区间,一开始 L= 0,R = 6,mid 所指向的就是数组的中间位置,根据 L 和 R 计算得到 mid 的值是 3。查看数组第 3 位的值是 12,比待查找值 17 要小,说明如果 17 在这个有序数组中,那它一定在 mid 所指向位置的后面,而 mid 本身所指向的数字已经确定不是 17 了,所以下一次我们可以将查找区间,定位到 mid + 1 到 R,也就是将 L 调整到 mid + 1 (即数组第 4

位)的位置。

1 第一种小白写法
 

 二分查找初探

说到二分查找,这里就有个笑话了。

小孙同学去图书馆借书,一次性了借了40本书,出图书馆的时候报警了,不知道哪一本书没有消磁,然后把书放在地上,准备一本本尝试。

女生的操作被旁边的阿姨看见了,阿姨说你这样操作多慢啊,我来教你。于是将树分为两摞,拿出第一luo过一下安检,安检机器想了,于是阿姨将这摞书分成两部分,拿出一部分继续尝试,就这样,阿姨每次减少一半,没几次就找到了没有消磁的书。阿姨嘚瑟的来一句:小姑凉,这就是书中的二分查找算法,你这还得好好学习哇,第二天,图书馆发现丢了39本书。哈哈哈哈

4 二分查找基础

最简单的二分算法即在一个有序数组中,查找一个数字X是否存在。注意有序性。那么如何在数组中查找一个数

从头到尾一个一个查找,找到即有数字x

二分算法即通过确定一个区间,然后查找区间的一半和x比较,如果比x大则在x前半段查找。如果比x小则在后半段查找,只需要log2n的比较即可确定结果。



(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读