ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python二级笔记

2022-05-06 13:34:56  阅读:226  来源: 互联网

标签:二级 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有