分治专题(二分查找与快速幂)



分治专题(二分查找与快速幂) 这个大周由于岳老师的一句话,我对程序的认识又有了巨大的改变。人活着不能一成不变,我觉得每天只进步一点点还不够,作为较好的一位,我就需要在相同的的时间内做更多的事情。于是,我就开始预习新知识,复习旧算法,最近我复习了c++的二分这一块,发现之前不会的明显有所提高,大部分都能掌握了,比如说快速幂与二分查找。     快速幂:快速幂运用的是二分思想,这应该是我较先接触的一个重要的算法。虽然说快速幂是我很晚才知道的,我之前一直觉得它很难,亲自刷了之后才发现并没有想象中的那么简单。      #include using namespace std; int b,p,k,s[......]

Read more

归并排序算法



什么是归并?

归并:将两个或两个以上的有序表组合成一个新有序表。

归并操作的步骤:

申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列

设定两个指针,最初位置分别为两个已经排序序列的起始位置

比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置

重复步骤3直到某一指针超出序列尾

将另一序列剩下的所有元素直接复制到合并序列尾

归并图解:

 

归并排序算法图解 归并排序算法[/[......]

Read more

设栈的初始为空,元素a,b,c,d,e,f,g依次入栈,

设栈的初始为空,元素a,b,c,d,e,f,g依次入栈,以下出栈序列不可能出现的是
A,a,b,c,d,e,f,g
B,f,c,a,b,e,g,d
C,d,c,f,e,b,a,g
D,a,e,d,c,b,f,g

B 不可能
A: a进a出 –> b进b出 –> c进c出 以此类推
C:a,b,c,d依次进栈 –> d出 c出 –> e,f进 –> f,e,b,a 依次出 –>最后g进g出
D:a进a出 –>b,c,d,e依次进栈 –> e,d,c,b 依次出栈 –> f进f出 –> g进g出[......]

Read more

二进制、八进制、十进制、十六进制之间的转换

二进制、八进制、十进制、十六进制之间的转换

进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。具体的用法小编今天不着重解释,主要针对他们之间的转换加以讨论(今天只讲整数)。

二进制、八进制、十进制、十六进制之间的转换
二进制与十进制之间的转换
1
十进制转二进制

方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

(具体用法如下图)[......]

Read more

二进制运算基础

二进制运算基础

# 一、二进制位运算
1. 按位与(&)
位运算实质是将参与运算的数字转换为二进制,而后逐位对应进行运算。

按位与运算为:两位全为1,结果为1,即1&1=1,1&0=0,0&1=0,0&0=0。

例如51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1

特殊用法:

(1)与0相与可清零。

(2)与1相与可保留原值,可从一个数中取某些位。例如需要取10101110中的低四位,10101110 & 000[......]

Read more

二进制数的加减乘除运算

加法 0+0=0,0+1=1+0=1,1+1=10
减法 0-0=0,1-0=1,1-1=0,0-1=-1,10100-1010=1010
乘法 0×0=0,0×1=1×0=0,1×1=1
除法 0÷1=0,1÷1=1
只有0和1两个数码,基数为二。

 

加法运算步骤
如下:

(1)首先是最右数码位相加。这里加数和被加数的最后一位分别为“0”和“1”,根据加法原则可以知道,相加后为“1”。

(2)再进行倒数第二位相加。这里加数和被加数的倒数第二位都为“1”,根据加法原则可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“1”向高一[......]

Read more

常见的进制转换方法

常见的进制转换方法

https://blog.csdn.net/devillyd2018/article/details/78993560

一:简述:

进位计数制:是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。

(1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。

(2)基:数制所使用的数码个数称为”基”。

(3)权:某数制每一位所具有的值称为”权”。

二:进制转换的理论

1、二进制数、十六进制数转换为十进制数:用按权展开法

把一个任意R进制数an an-1 …a1a0 . a-1 a-2.[......]

Read more

二进制十进制间小数怎么转换

https://jingyan.baidu.com/article/425e69e6e93ca9be15fc1626.html

方法/步骤先进行十进制的小数到二进制的转换。

  1. 1

    十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如十进制的0.125,要转换为二进制的小数。

    二进制十进制间小数怎么转换
  2. 2

    转换为二进制,将小数部分0.125乘以2,得0.25,然后取整数部分0

    二进制十进制间小数怎么转换
  3. 3

    再将小数部分0.25乘以2,得0.5,然后取整数部分0

    二进制十进制间小数怎么转换
  4. [......]

Read more

s->next=HS,HS=s 的意思是?

链表操作,不知道你具体是在什么情况下用,我给你举一个在链表头部添加节点的操作为例:
假设HS指向一个链表的头部第一个节点,s是要添加的节点,前面经过一系列操作,s的内容已经确定,现在要将s插入到这个链表中,于是乎:
s->next = HS
把s的下一个节点指向当前链表的头
HS=s
把链表的头指针指向s
最后结果就是将HS指向新插入的节点,作为头结点,头结点的next指向以前链表的头

NOIP2017C++普及组基础部分试题解析

第二篇blog】NOIP2017C++普及组基础部分试题解析https://blog.csdn.net/Prasnip_/article/details/78418070?locationNum=3&fps=1

2017年11月01日 20:13:15 Parsnip_ 阅读数:2058更多

所属专栏: Butterfly rain
版权声明:随你转载,你开心就好(记得评论和注明出处哦) https://blog.csdn.net/Prasnip_/article/details/78418070

第二篇blog,已做好奋斗准备。

[......]

Read more