信息学奥赛NOIP初赛复习知识点+基本函数

2022-03-24 08:22:23   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《信息学奥赛NOIP初赛复习知识点+基本函数》,欢迎阅读!
奥赛,初赛,知识点,函数,复习


信息学奥赛NOIP初赛复习知识点+基本函数

1被西方人誉为计算机之父的美籍匈牙利科学家、 数学 · 诺依曼 1945 年发表了一个全新的 " 存储程序通用电子计算机方案 " EDVAC EDVAC 方案提出了著名的·诺依曼体系结构理论1采用二进制形式表示数据和指令2)采用存储程序方式3由运算器、存储器、控制器、输入设备和输出设备五大部件组成计算机系统

2 图灵机·诺伊曼机齐名,被永远载入计算机的发展史中。195010月,图灵又发表了另一篇题为机器能思考吗的论文,成为划时代之作。也正是这篇文章,为图灵赢得了人工智能之父的桂冠。与计算机有关的最高奖项“图灵奖”。 3常见的操作系统有:DOSWIN32WIN95WIN98WIN2000WINXPWIN2003LINUX

4断电后能保存信息的有:ROM(只读存储器)、硬盘、软盘、光盘、U盘、MP3MP4等;不能保存的主要是RAM(读写存储器)。 5CPU又名中央处理器,它可以分成运算器、控制器和寄存器 6Smalltalk被认为是第一个真正面向对象的语言

7第一代语言:机器语言0101001第二代语言:20世纪50年代,汇编语言,第三代语言:高级语言、算法语言,BASICFORTRANCOBOLPASCALC高级语言的特点是可读性强,编程方便;第四代语言:非过程化语言;SQL第五代语言:智能性语言,PROLOG(代表);还有:LISPAPLSNOBOLSIMULA

8编程时读入一个很大的二维数组,按行读和按列读相比,输入效率上(取决于数组的存储方式)。 9希尔排序是一种不稳定的排序

快速排序是冒泡排序的改进,是速度最快的排序方法



简单排序

(采用比较为主要操作的算法)

排序方法 时间复杂

插入排序 O(n^2) 选择排序 O(n^2) 冒泡排序 O(n^2) 快速排序 O(nlogn)

最好时间复杂 O(n) O(n^2) O(n) O(nlogn)

最坏时间复杂 O(n^2) O(n^2) O(n^2) O(n^2)

是否稳定 稳定 不稳定 稳定 不稳定

空间复杂 O(1) O(1) O(1) O(logn)



n比较小的时候,适合插入排序和选择排序;②基本有序的时候,适合直接插入排序和冒泡排序;④n很大的时候,适合快速排序、堆排序 、归并排序;⑤无序的时候,适合快速排序;

⑥稳定的排序:冒泡排序、插入排序、归并排序、基数排序;⑦复杂度是O(nlogn):快速排序、堆排序、归并排序;

⑧辅助空间(大 次大):归并排序、快速排序;⑨好坏情况一样:简单选择排序(n^2),堆排序(nlogn),归并排序(nlogn); ⑩最好是O(n)的:插入排序、冒泡排序。

10PASCAL语言中,表达式(21 XOR 2)的值是(23

11PASCAL语言,判断a不等于0 b不等于0的正确的条件表达式是(a<>0and(b<>0)

12高度为N的均衡的二叉树是:如果去掉叶结点及相应的树枝,它应该是高度为N-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为(11)。

13结点的度:一个结点的子树数目称为该结点的度树的度:所有结点中最大的度称为该树的度(宽度)。3)树的深度(高度)树是分

层次的。结点所在的层次是从根算起的。根结点在第一层,根的儿子在第二层,其余各层依次类推。树中最大的层次称为树的深度,亦称高度。

14满二叉树: 若深度为K的二叉树,共有2K-1个结点,即第I层有2I-1的结点,称为满二叉树。

15完全二叉树:如果一棵二叉树最多只有最下面两层结点度数可以小于2,并且最下面一层的结点都集中在该层最左边的若干位

置上,则称此二叉树为完全二叉树

16二叉树的三个主要性质:

性质1:在二叉树的第i(≥1)层上,最多有2i-1个结点 性质2:在深度为k(k1)的二叉树中最多有2k-1个结点。

性质3:在任何二叉树中,叶子结点数总比度为2的结点多1n0=n2+1

17数的表示:为了表达方便起见,常在数字后加一缩写字母后缀作为不同进制数的标识。各种进制数的后缀字母分别为: B:二进制数。Q:八进制数。D:十进制数。H:十六进制数。对于十进制数通常不加后缀,也即十进制数后的字母D可省略 18广度优先需要用到的是 队列,深度优先需要 的是栈

19回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达 不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。动态规划把多阶段过程转化为一系列单阶段问题,利用 1



1




各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。贪心算法(又称贪婪算法)是指,在对问题 求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。一、数学函数:

Inc(i) 使I:=I+1; Inc(I,b) 使I:=I+b;

Abs(x) x的绝对值 例:abs(-3)=3

Chr(x) 求编号x对应的字符。例:Chr(65)=‟A‟ chr(97)=‟a‟ 个位置

例:s:=abc;insert(„12‟,s,2);结果s:=‟a12bc‟ 5. 求字符串长度 length(s) 例:length(„12abc‟)=5 6. 搜索子串的位置 pos(s1,s2) 如果s1s2的子串 ,则chr(48)=‟0‟

Ord(x) 求字符x对应的编号。:ord(„A‟)=65 ord(„a‟)=97 外:ord(false)=0 ord(true)=1 Sqr(x) x的平方。 例:sqr(4)=16 Sqrt(x)x的开方. 例:sqrt(16)=4

round(x) x的四舍五入 例:round(4.5)=5

trunc(x) x的整数部分 例:trunc(5.6)=5 结果是integer

int(x) x的整数部分 int(5.6)=5.0 frac (x)x的小数部分 frac(5.6)=0.6 pred(x) x pred(„b‟)=‟a‟ pred(5)=4 pred(true)=false succ(x)

x

succ(„b‟)=‟c‟ succ(5)=6

succ(false)=true

odd(x) 判断x是否为奇数。如果是值为true反之值为false. Odd(2)=false odd(5)=true

power(a,n) an次方 power(2,3)=8 exp(b*ln(a)) ab次方

random 0~1之间的随机数(不能取到1

randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面.

Fillchar(a,size(a),0) 数组初始化,即把数组a的值全部置0

二、字符串函数

1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.

例:concat(„11‟,‟aa‟)=‟11aa‟;

2. 求子串。 Copy(s,i,L) 从字符串s中截取第i个字符开始后的长度为L的子串。 :copy(„abdag‟,2,3)=‟bda‟ 3. 删除子串。过程 Delete(s,i,L) 从字符串s中删除第i字符开始后的长度为L的子串。例:s:=‟abcde‟;delete(s,2,3);结果s:=‟ae‟

4. 插入子串。 过程Insert(s1,s2,I) s1插入到s2的第I2



返回s1的第一个字符在s2中的位置,若不是子串,则返0.

例:pos(„ab‟,‟12abcd‟)=3

7. 字符的大写转换。Upcase(ch) 求字符ch的大写体。 例:upcase(„a‟)=‟A‟

8. 数值转换为数串。 过程 Str(x,s) 把数值x化为数串s. 例:str(12345,s); 结果s=‟12345‟

9. 数串转换为数值。 过程val(s,x,i) 把数串s转化为数值x,如果成功则i=0,不成功则i为无效字符的序数 例:val(„1234‟,x,I);结果 x:=1234 xor :异或运算 shr:位运算 相当于/2

shl:位运算 相当于*2,但是比*运算快的多的多 int : 求一个实型数的整数部分 arc tan:反正切函数

xor:异或运算,就是把两个数转换成二进制数,然后每位对应,如果相同(都是01)就得1,如果不同就得0 shl:左位移(左位移一位=*2,左位移两位=*2^2……a shl b=a*2^b

shr右位移(右位移一位=/2右位移两位=/2^2……a shl b=a/2^b

取整函数int(x) 注意:X是实型数,返回值也是实型的;返回的是X的整数部分,也就是说,X被截尾了(而不是四舍五入)

2


本文来源:https://www.wddqxz.cn/b1aee4f2f111f18583d05ad8.html

相关推荐