计算机?
1948年,第一台计算机埃尼阿克
第一个程序员:Ada 有为此命名的程序语言
图灵奖 菲尔兹将(数学) 诺贝尔奖(物化生经济文学和平)
ACM IEEE(电气电子工程师学会) CCF
1944年,美籍匈牙利数学家 冯 诺依曼 提出计算机基本结构和工作方式的设想 为计算机的诞生和发展提供了理论基础
微型机主要技术指标:
- 字长:一直计算机能够直接处理的二进制数据的基础位数 单位为位(BIT)
- 主频:计算机主时钟在一秒内发出的脉冲数 很大程度上决定了计算机的运算速度
- 内存容量:表示计算机处理信息能力强弱的一项技术指标 单位为字节(BYTE
- 外存容量:一般指软盘、硬盘、光盘
计算机的特点:运算速度快 运算精度高 有记忆能力 逻辑判断能力 自动控制能力
计算机硬件由五大部分组成:运算器、控制器、存储器、输入设备、输出设备
中央处理器(CPU):由运算器、控制器和一些寄存器组成
运算器进行各种算术运算和逻辑运算;控制器是计算机的指挥系统 CPU的主要性能指标是主频和字长
存储器:
内部存储器:中央处理器能直接访问的存储器称为内部存储器,包括快速缓冲存储器和主存储器;中央处理器不能直接访问的存储器称为外部存储器,外部存储器中的信息必须调入内存后才能为中央处理器处理。
主存储器:内存也常泛称主存,但严格上说,只有当内存中只有主存,而没有快速缓冲存储器时,才能称为主存。主存储器按读写功能,可分只读存储器(ROM)和随机存储器(RAM)两种。
外部存储器:
外存储器:也称辅助存储器,一般容量较大,速度比主存较慢
硬盘(Hard disk):将盘片、读写磁头及驱动装置精密地组装在一个密封盒里;采用接触式起停,非接触式读写的方式(磁盘不工作时,磁头停在磁盘表面的起停区,一旦加电后,磁头随着盘片旋转的气流“飞”起来,悬浮在磁盘表面,进行读写)
软盘(Floppy Disk):目前常见的是3.5英寸/1.44 MB的软盘
光盘存储器(CD-ROM):普通的CD-ROM,只能读,不能写; CD盘片的存储量大约是650 MB
输入设备
键盘、鼠标(Mouse,主要机械型和光电型)、手写笔、触摸屏、麦克风、扫描仪、视频输入设备、条形码扫描器
输出设备
显示器(Monitor):目前主要有CRT(阴极射线管)显示器和LCD液晶显示器;打印机:主要有针式打印机、喷墨打印机、激光打印机;绘图仪 音箱
微型计算机的问世是由于(超)大规模集成电路的出现
中央处理器(CPU)能访问的最大存储器容量取决于地址总线
微型计算机中,寄存器的存取速度最快
若我们说一个微机的CPU是用的PII300,此处的300确切指的是CPU的主时钟频率
计算机系统总线上传送的信号有数据信号、控制信号与地址信号
图论基础相关
特殊的树
- 链(chain/path graph) :满足与任一结点相连的边不超过2条的树称为链。
- 菊花/星星(star) :满足存在(u)使得所有除(u)以外结点均与(u)相连的树称为菊花。
- 有根二叉树(rooted binary tree) :每个结点最多只有两个儿子(子结点)的有根树称为二叉树。常常对两个子结点的顺序加以区分,分别称之为左子结点和右子结点。
大多数情况下, 二叉树 一词均指有根二叉树。
- 完整二叉树(full/proper binary tree) :每个结点的子结点数量均为 0 或者 2 的二叉树。换言之,每个结点或者是树叶,或者左右子树均非空。
- 完全二叉树(complete binary tree) :只有最下面两层结点的度数可以小于 2,且最下面一层的结点都集中在该层最左边的连续位置上。
- 完美二叉树(perfect binary tree) :所有叶结点的深度均相同的二叉树称为完美二叉树。
排序
稳定性:是指相等的元素经过排序之后相对顺序是否发生了改变。
基数排序、计数排序、插入排序、冒泡排序、归并排序是稳定排序。
选择排序、堆排序、快速排序不是稳定排序。
复杂度相关?
(O(n^2)):选择排序,插入排序,冒泡排序
(O(n log n)):堆排序,归并排序,快速排序
前两类是基于比较的排序算法 基于比较的排序算法的时间复杂度下界是(O(nlog n))
计数排序、基数排序、桶排序不仅与(n)有关,还与数值的大小范围(m)有关
选择排序:每次找出第(i)小的元素(即(A_{i...n})中最小的元素) 将这个元素与数组第(i)个位置上的元素交换
冒泡排序:冒泡排序是一种稳定的排序方法。
以升序为例,冒泡排序每次检查相邻两个元素,如果前面的元素大于后面的元素,就将相邻两个元素交换。当没有相邻的元素需要交换时,排序就完成了。
经过第(i)次排序后,数列末尾的(i)项必然是最大的第(i)项
插入排序: 插入排序将数列划分为“已排序的”和“未排序的”两部分,每次从“未排序的”元素中选择一个插入到“已排序的”元素中的正确位置
计数排序:计数排序是一种复杂度为(O(n+w))的稳定排序,其中(w)代表待排序数据的值域大小。
计数排序分为三个步骤:
1. 计算每个数出现了几次。
2. 求出每个数出现次数的前缀和。
3. 利用出现次数的前缀和,从右至左计算每个数的排名。
计数排序: 基数排序是将待排序的元素拆分为(k)个关键字(比较两个元素时,先比较第一关键字,如果相同再比较第二关键字……),然后先对第(k)关键字进行稳定排序,再对第(k-1)键字进行稳定排序……最后对第一关键字进行稳定排序,这样就完成了对整个待排序序列的稳定排序。
一般来说,每个关键字的值域都不大,就可以使用计数排序作为内层排序,复杂度为(O(nk+sum^k_{i=1}w_i)),其中(w_i)为第(i)键字的值域大小
快速排序:是 分治地来将一个数组排序
快速排序分为三个过程:
1. 将数列划分为两部分(不是直接分,要求保证相对大小关系)
2. 递归到两个子序列中分别进行快速排序
3. 不用合并,因为此时数列已经完全有序
归并排序:归并排序是一种采用了 分治 思想的排序算法,其本质是一种 CDQ 分治 。
归并排序分为三个过程:
1. 将数列划分为两部分(在均匀划分时时间复杂度为(O(n log n)));
2. 递归地分别对两个子序列进行归并排序;
3. 合并两个子序列。
堆排序:对所有记录建堆 。依次取出堆顶元素,就可以得到排好序的序列。时间复杂度为(O(n log n))。
桶排序: 桶排序适用于待排序数据值域较大但分布比较均匀的情况,是一个期望时间复杂度为(O(n))的排序算法。
希尔排序:Shell 排序是以它的发明者命名的,也称为缩小增量排序法。Shell 排序对不相邻的记录进行比较和移动:
1.将待排序序列分为若干子序列(每个子序列的元素在原始数组中间距相同)
2.对这些子序列进行插入排序
3.减小每个子序列中元素之间的间距,重复上述过程直至间距减少为 1
Shell 排序的复杂度和间距序列的选取(就是间距如何减小到 1)有关,比如“间距每次除以 3”的 Shell 排序的复杂度是(O(n^{3/2})))。
网络中计算机与计算机之间的通信依靠协议进行。协议是计算机收、发数据的规则。
1、TCP/IP:用于网络的一组通讯协议。包括IP(Internet Protocol)和TCP(Transmission Control Protocol)。
TCP/IP是一组协议,包括上百个各种功能的协议,其中TCP 和IP是最核心的两个协议。TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型。
1. 链路层:这是TCP/IP 结构的第一层,也叫网络接口层,其功能是提供网络相邻节点间的信息传输以及网络硬件和设备驱动。
2. 网络层:(IP协议层)其功能是提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能。
3. 传输屋:(TCP 协议)其功能是提供网络上的各应用程序之间的通信服务。
4. 应用层:这是TCP/IP最高层,其功能是为用户提供访问网络环境的手段,主要提供FTP、TELNET、GOPHER等功能软件。
IP协议适用于所有类型网络。TCP 协议则处理IP协议所遗留的通信问题,为应用程序提供可靠的通信连接,并能自动适应网络的变化。TCP/IP 目前成为最为成功的网络体系结构和协议规范。
2、Netbeui:一种非常简单的协议,MICROSOFT开发。
3、IPX:用于NOVELL网络。
else
NOI:1984,中国计算机学会(CCF)
NOIP:1995-2019
可以带:文具(稿纸不可),衣服,水,证件
2022年后只能用C++
编译:代码->可执行文件(机器码)C/C++,Pascal
解释:一行一行运行 Python, JavaScript, PHP,BASIC
主定理:递推关系式(egin{align*}T(n)=aT(frac nb)+f(n)end{align*})
若(egin{align*}f(n)=O(n^{log_b}a-varepsilon),varepsilon>0end{align*}) 那么(egin{align*}T(n)=Theta (n^{log_ba})end{align*})
(egin{align*}f(n)=Theta(n^{log_ba})end{align*}),那么(egin{align*}T(n)=Theta(n^{log_ba}log n)end{align*})
若(egin{align*}f(n)=Omega(n^{log_ba-varepsilon}),varepsilon>0end{align*}),且对于某个常数(c<1)和所有充分大的(n)有(egin{align*}af(frac nb)le cf(n),那么T(n)=Theta(f(n)) end{align*})
错题
-
在数据压缩编码的应用中,哈夫曼(Huffman)算法是一种采用了( )思想的算法。
A. 贪心 B. 分治 C. 递推 D. 回溯
正确:A.贪心 误:B -
如果根的高度为 1,具有 61 个结点的完全二叉树的高度为( )。
A. 5 B. 6 C. 7 D. 8
正确:B.6 误:A.5
见树基础 -
以下属于操作系统的有( )。
A. Windows XP B. UNIX C. Linux D. Mac OS
正确:A,B,C,D 误:A,C,D -
以比较作为基本运算,在 N 个数中找最小数的最少运算次数为( )。
A. N B. N-1 C. N^2 D. log N
正确:B 错误:D -
如果根的高度为 1,具有 61 个结点的完全二叉树的高度为( )。
A. 5 B. 6 C.7 D. 8
正确: B 误:A -
G 是一个非连通简单无向图,共有 28 条边,则该图至少有( )个顶点。
A. 10 B. 9 C.8 D. 7
((8-1)*8/2=28)
-
.某计算机的 CPU 和内存之间的地址总线宽度是 32 位(bit),这台计算机最多可以使用( )的内存。
A. 2GB B. 4GB C.8GB D. 16GB
正确: B 误:D -
可以将单个计算机接入到计算机网络中的网络接入通讯设备有( )。
A. 网卡 B. 光驱 C.鼠标 D. 显卡
正确: A 误:A,B -
下列算法中运用分治思想的有( )。
A. 快速排序 B. 归并排序 C.冒泡排序 D. 计数排序
正确:A,B 误:B(O(n^2)):选择排序,插入排序,冒泡排序
(O(n log n)):堆排序,归并排序,快速排序
前两类是基于比较的排序算法 基于比较的排序算法的时间复杂度下界是(O(nlog n))
计数排序、基数排序、桶排序不仅与(n)有关,还与数值的大小范围(m)有关
-
假设一台抽奖机中有红、蓝两色的球,任意时刻按下抽奖按钮,都会等概率获得红球或蓝球之一。有足够多的人每人都用这台抽奖机抽奖,假如他们的策略均为:抽中蓝球则继续抽球,抽中红球则停止。最后每个人都把自己获得的所有球放到一个大箱子里,最终大箱子里的红球与蓝球的比例接近于( )。
A. 1 : 2 B. 2 : 1 C. 1 : 3 D. 1 : 1
正确:A 错误:B
不管连着抽多少次 ,每次抽出红球和蓝球的概率都为50%
-
在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是( )。
A. 1 / 2 B. 1 / 3 C.2 / 3 D. 3 / 5
正确:B 错误:C
-
下列关于最短路算法的说法正确的有( )。
A. 当图中不存在负权回路但是存在负权边时,Dijkstra 算法不一定能求出源点到所有点的最短路。
B. 当图中不存在负权边时,调用多次Dijkstra 算法能求出每对顶点间最短路径。
C. 图中存在负权回路时,调用一次Dijkstra 算法也一定能求出源点到所有点的最短路。
D. 当图中不存在负权边时,调用一次Dijkstra 算法不能用于每对顶点间最短路计算。
正确:A,B,D
2014
-
1TB代表的字节数量是( ).
A. 2的10次方 B. 2的20次方 C.2的30次方 D. 2的40次方
正确:D 错误:C -
TCP协议属于哪一层协议( ).
A. 应用层 B. 传输层 C. 网络层 D. 数据链路层
正确:B 错误:A -
对长度位n的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的平均检索长度为( ).
A. n/2 B. (n+1)/2 C. (n-1)/2 D. n/4
正确:B 错误;C
2017
- 同时查找2n 个数中的最大值和最小值,最少比较次数为( ).
A. 3(n-2)/2 B. 4n-2 C. 3n-2 D. 2n-2
正确:C 错误:D
- 对于入栈顺序为 a, b, c, d, e, f, g 的序列,下列( )不可能是合法的出栈序 列。
A. a, b, c, d, e, f, g B. a, d, c, b, e, g, f C. a, d, b, c, g, f, e D. g, f, e, d, c, b, a
正确:C 错误:B