当前位置:首页 > 教育培训 >

二进制数1000对应的十进制数是(十进制1000二进制怎么表示)

来源:原点资讯(www.yd166.com)时间:2023-10-30 01:12:55作者:YD166手机阅读>>

常用的在二分查找中节省时间的小技巧

那就是在计算mid的时候,不再使用(left right)/2而是(left right)>>1,>>是位运算符,学习过计算机组成原理的朋友都知道,位运算要比加法运算快得多,而右移一位就相当于除以2,举个例子,二进制数1000代表十进制数8,右移一位变成了0100,也就是十进制数4。

又一道LeetCode算法题奉上:

https://leetcode-cn.com/problems/search-in-rotated-sorted-array/

这道题是在说,一个原本有序的数组,有可能某处之前的元素按照原来的顺序放在了数组的末尾,然后在这样一个数组中查找值target。

同样是一个毫无疑问无序但又部分有序的数组,它的整体走向如下图所示:

二进制数1000对应的十进制数是,十进制1000二进制怎么表示(21)

我们首先要做的,仍然是找到峰值,只要找到峰值就能把数组划分成有序的两部分,那么问题来了,要如何找到峰值呢?

显然这道题目不能通过单调趋势确定峰值的位置,因为两部分都是单调递增的,但是我们知道左半部分的最小值和右半部分的最大值,左半部分的最小值就是数组的第一个元素,右半部分的最大值就是数组的最后一个元素。

遇到一个元素只要它不是峰值:

如果它小于右半部分的最大值,峰值就位于它的左边;

否则,峰值就位于它的右边。

如果它是峰值,此时有两种情况:

它是第一个元素,只要它大于它右边的元素它就是峰值;

它不是第一个元素,只要它大于它左右两边的元素它就是峰值。

在这个题中,还直接根据target推得target只可能位于数组的那一部分:只要大于等于左半部分的最小值就肯定位于左半部分;

只要小于等于右半部分的最大值就肯定位于右半部分。

剩下的就是简单二分查找了。

以下代码为通过该题的代码:

class Solution {
public:
vector<int> nums;
int len;
int rvalue;
int left,right;
intfindSummit
{
while(left<=right)
{
int mid=(left right)>>1;
if((mid==0&&mid 1<len&&nums[mid]>nums[mid 1])||(mid-1>=0&&mid 1<len&&nums[mid]>nums[mid-1]&&nums[mid]>nums[mid 1]))
{
return mid;
}
else if(nums[mid]<rvalue)
{
right=mid-1;
}
else
{
left=mid 1;
}
}
return -1;
}
intsearch(vector<int>& nums, int target) {
this->nums=nums;
len=nums.size;
if(len==0)
{
return -1;
}
//右半部分最大值
rvalue=nums[len-1];
left=0;
right=len-1;
int summit=findSummit;
if(target>rvalue)
{
//在左半部分
left=0;
right=summit;
}
else
{
//在右半部分
left=summit 1;
right=len-1;
}
while(left<=right)
{
int mid=(left right)>>1;
if(target==nums[mid])
{
return mid;
}
else if(target<nums[mid])
{
right=mid-1;
}
else
{
left=mid 1;
}
}
return -1;
}
};

二进制数1000对应的十进制数是,十进制1000二进制怎么表示(22)

二进制数1000对应的十进制数是,十进制1000二进制怎么表示(23)

二进制数1000对应的十进制数是,十进制1000二进制怎么表示(24)

栏目热文

1000的十进制对应二进制多少(1000的十进制转换为二进制)

1000的十进制对应二进制多少(1000的十进制转换为二进制)

当前最先进的计算机都采用的是冯诺依曼体系结构,所以冯诺依曼是当之无愧的数字计算机之父。冯诺依曼体系结构特点:(1)计算机...

2023-10-30 01:48:48查看全文 >>

二进制10010101对应的十进制数(二进制数010对应的十进制数是多少)

二进制10010101对应的十进制数(二进制数010对应的十进制数是多少)

S7-200smart数据类型和存储区和寻址方式 原创2021-05-01 10.06 凯特利电子如果你阅读本文之后对作...

2023-10-30 01:55:38查看全文 >>

10进制数1000对应二进制数为多少(十进制1000对应的16进制数是多少)

10进制数1000对应二进制数为多少(十进制1000对应的16进制数是多少)

新华社郑州10月24日电 题:一位种粮大户的秋收新华社记者刘金辉、许炜凯看着仓库里堆成小山的玉米,河南西平县杨庄乡仪封北...

2023-10-30 01:50:54查看全文 >>

十进制1000对应的二进制数是多少(十进制对应的二进制是多少)

十进制1000对应的二进制数是多少(十进制对应的二进制是多少)

昨天给大家分享了PLC编程的进制的介绍,今天分享进制转换。希望能够帮助到大家。十进制转二进制: 以10进制依次除以2取余...

2023-10-30 01:31:18查看全文 >>

10进制数为1000对应二进制是多少(十进制1-10对应二进制数字多少)

10进制数为1000对应二进制是多少(十进制1-10对应二进制数字多少)

二进制与十进制表十进制数12345678910二进制数11011100101110111100010011010十进制数...

2023-10-30 01:47:42查看全文 >>

十进制数1000对应二进制数为多少(二进制1001对应的十进制数是几)

十进制数1000对应二进制数为多少(二进制1001对应的十进制数是几)

全是干货数进制及其转换 (1)数位:是指数码在一个数中所处的位置。(2)基数:是指某个进制数中允许选用的基本数码的个数。...

2023-10-30 01:38:56查看全文 >>

十进制1000对应的16进制数是多少(16进制1000换成十进制是多少)

十进制1000对应的16进制数是多少(16进制1000换成十进制是多少)

大家在电商平台购物时,在不清楚产品的好坏时,会不会浏览已购买用户的评论,以此来作为评判这款产品的佐证?笔者在购买陌生产品...

2023-10-30 01:56:04查看全文 >>

十进制数1000对应的十六进制数为(十进制1000转十六进制是多少)

十进制数1000对应的十六进制数为(十进制1000转十六进制是多少)

目录1.什么是进制 12. 四种常用计算机进制 12.1 十进制 12.2 二进制 12.3 八进制 12.4 十六进制...

2023-10-30 01:49:28查看全文 >>

十进制数1000对应的二进制数是(二进制数1000对应的十进制数是)

十进制数1000对应的二进制数是(二进制数1000对应的十进制数是)

英语1. I’m feeling sick. I ________ so much chocolate.A. needn...

2023-10-30 01:19:33查看全文 >>

我的世界原始科技整合(我的世界科技简单版教程)

我的世界原始科技整合(我的世界科技简单版教程)

PDF文件是我们在办公和学习中经常遇到的一种文件格式。我相信每个人的电脑里都有很多PDF文件。有时候,为了方便文件的整理...

2023-10-30 01:12:51查看全文 >>

文档排行