编程语言
首页 > 编程语言> > python二级笔记

python二级笔记

作者:互联网

 

说明

最新文档地址:https://zdfx6jzjhp.feishu.cn/docs/doccnMUPH5koZ2yeCgchk6sBg5e

@all 特别说明所有内容均是个人学习笔记,请勿其他用途。

题目选择上比较简单的题没有做上去


 

公共基础题

资料来源:首页 (ishare20.net)

下载(扫描增强版):https://www.123pan.com/s/UqzA-LHdr3 提取码:9999

 

指令周期、执行时序、执行速度、指令周期

image-20220306212614669

拼图-扫描全能王 2022-03-08 09.37

顺序程序、并发程序

 

image-20220306212937411

1.顺序程序设计,是指所设计的程序具有以下 3个特点:

①程序所规定的动作严格地按顺序执行,即每个动作都必须在上一个动作执行完成以后才

开始。或者说,每个动作都必须在下一个操作开始执行之前结束。这就是程序的顺序性

②程序一旦开始执行,其计算结果不受外界因素的影响。也就是说,顺序程序的静态文本

与其计算过程有着一一对应的关系。这就是顺序程序的封闭性

③在程序运行过程中,任何两个动作之间的停顿,对程序的计算结果不发生任何影响,即程

序的计算结果与它的运行速度无关。只要给定相同的初始条件,并给以同样的输入,重复执行同

一个程序一定会得到相同的结果。这就是顺序程序的可再现性

即顺序程序所具有的顺序性、封闭性和可再现性的特点,使得程序设计者能够控制程序执行

的过程(包括执行顺序 、执行时间),对程序执行的中间结果和状态可以预先估计,这样就可以方

便地进行程序的测试和调试。

 

为了充分利用系统资源,提高系统的效率,除了在硬件上采用通道技术、中断技术等措施,使设备间实现并行操作外,还要从软件上采取相应的措施,使多个程序能并发执行

2.所谓多个程序并发执行(concurrent execution),是指一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的 执行已经开始的这种执行方式。只有在多处理机系统中才可能做到物理上的真正并行,而在单处理机的系统中,这些程序只能在逻辑上或在宏观上做到并行执行。也就是说,在单处理机的情 况下、并发执行是指多个程序的运行在时间上是重迭的,而并不是说这些程序在某一时刻同时占用处理机在运行。

多个程序并发执行是多道程序系统的特点。显然,并发程序的执行情况与顺序程序的执行 情况是很不相同的,它比顺序程序的执行情况要复杂得多,程序设计时要考虑的因素也多得多。考虑各种并行性的程序设计方法称为并发程序设计。

 

并发程序在执行过程中有以下几个特点:

(1)并发程序没有封闭性

顺序程序具有封闭性,程序执行后的输出结果与时间无关。但是,在并发程序的执行过程

中,某个程序中的变量可能被另外程序的执行所改变;或者某个程序中的变量在用另外一个程序

输出时,不同时刻其输出值可能是不一样的。即并发程序的输出结果与各程序执行的相对速度

有关,失去了程序的封闭性这个特点。

例1.1 设有两个并发程序 A 和 B互相独立地运行,如图1.8所示。当程序 A执行到I时、

由于某个原因将控制转到执行程序 B,由程序 B打印n 的值为0,而后当程序 B运行到I,时,又

将控制转到执行程序 A,接着I,之后继续执行。

现假设程序 B 运行的速度慢一些,如果在程序 A运行到I、时,才将控制转到执行程序 B(如

图中虚线所示),此时由程序 B打印的 n 值为1,而不是0。

从这个例子可以看出,程序 B的运行结果与它们的相对运行速度有关,这就说明程序没有

封闭性。因为程序的执行结果与时间有关,因此,结果是不可再现的,即使输入相同的初始条件,

也可能得到不同的结果,这称为"结果的不确定性"。

(2)程序与其执行过程不是一一对应的关系

在顺序程序设计中,程序的封闭性决定了程序与其执行过程是完全对应的,程序的执行路

径、执行时间和所执行的操作都可以从程序中反映出来。但在多道程序并发执行的情况下,程序

的执行过程由当时的系统环境与条件所决定,程序与其执行过程就不再有一一对应的关系。当

多个执行过程共享某个程序时,它们都可以调用这个程序,调用一次即对应一个执行过程,也就

是说,这个共享的程序对应多个执行过程。

(3)程序并发执行可以互相制约

并发程序的执行过程是复杂的,这是因为它们之间不但可能有互为因果的直接制约关系,而且还可能由于共享某些资源或过程而具有间接的互相制约关系。

 

 

算法的时间和空间复杂度

image-20220306220618987

时间复杂度指的是计算工作量

空间复杂度是指存储空间

 

× 非线性结构一定不能采用顺序存储结构

二叉树就是非线性但是可以顺序储存

image-20220310215219408

 

二叉树的遍历

image-20220308135542379

完全二叉树除了最后一层都是满的

 

 

二叉树节点计算

总节点数=所有度数节点数*度数+1

总结点数=所有度下节点数之和

img

image-20220311213956071

设度为0的节点=x个

度为2的节点=x+1

由题意度为0的几点有1个,很好理解因为节点有偶数个(完全二叉树),根节点要和某个节点拼凑陈偶数

x+x+1+1=2n

x=n-1

 

image-20220307214057327

总节点数=所有节点数的度数之和+1

 

image-20220308104158910

利用性质3

 

image-20220308130845446

 

 

 

结构化程序(顺序、选择、循环结构)

image-20220308094442561

image-20220307215346569

 

 

img

标签:二级,python,储存器,程序,笔记,节点,顺序程序,执行,并发程序
来源: https://www.cnblogs.com/Hutters/p/16228351.html