归并排序算法
什么是归并?
归并:将两个或两个以上的有序表组合成一个新有序表。
归并操作的步骤:
申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
设定两个指针,最初位置分别为两个已经排序序列的起始位置
比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
重复步骤3直到某一指针超出序列尾
将另一序列剩下的所有元素直接复制到合并序列尾
归并图解:
设栈的初始为空,元素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出[......]
二进制、八进制、十进制、十六进制之间的转换
二进制、八进制、十进制、十六进制之间的转换
进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。具体的用法小编今天不着重解释,主要针对他们之间的转换加以讨论(今天只讲整数)。
二进制、八进制、十进制、十六进制之间的转换
二进制与十进制之间的转换
1
十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
(具体用法如下图)[......]
二进制运算基础
二进制运算基础
# 一、二进制位运算
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[......]
二进制数的加减乘除运算
加法 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”向高一[......]
常见的进制转换方法
常见的进制转换方法
https://blog.csdn.net/devillyd2018/article/details/78993560
一:简述:
进位计数制:是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。
(1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。
(2)基:数制所使用的数码个数称为”基”。
(3)权:某数制每一位所具有的值称为”权”。
二:进制转换的理论
1、二进制数、十六进制数转换为十进制数:用按权展开法
把一个任意R进制数an an-1 …a1a0 . a-1 a-2.[......]
二进制十进制间小数怎么转换
https://jingyan.baidu.com/article/425e69e6e93ca9be15fc1626.html
方法/步骤先进行十进制的小数到二进制的转换。
-
1
十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如十进制的0.125,要转换为二进制的小数。
-
2
转换为二进制,将小数部分0.125乘以2,得0.25,然后取整数部分0
-
3
再将小数部分0.25乘以2,得0.5,然后取整数部分0
- [......]
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
第二篇blog,已做好奋斗准备。
[......]