计算机二级备考笔记(第一期)

一、选择题

1.前中后序

(1)口诀:根在前,根左右;根在中,左根右;根在后,左右根。

(2)计算:二叉树——>度为0的结点总是比度为2的结点多一个(K+1=n0+n1+n2;K=n1+n2*2;n0-1=n2);在具有2n个结点的完全二叉树,叶子结点的个数为n

2.复杂度

(单段代码看循环,多段代码取最大,嵌套代码求乘积,多个规模求和)

——空间复杂度:算法运行过程中所使用的辅助空间大小或执行过程中所需要的计算机存储空间(变量所占空间以及递归工作栈带来的复杂度)——O(1)(常数阶),O(logn)(对数阶),O(n)(线性阶)

——时间复杂度:算法中所有语句的频度(执行次数)之和——

3.二叉树

度:节点孩子的个数,树的度则为结点度的最大值;

叶子结点:没有子节点的节点;

树的结点(node):包含一个数据元素及若干指向子树的分支;

孩子结点(child node):结点的子树的根称为该结点的孩子;

双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;

兄弟结点:同一双亲的孩子结点;

堂兄结点:同一层上结点;

祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙;

结点层:根结点的层定义为1,根的孩子为第二层结点,依此类推;

树的深度:树中最大的结点层;

结点的度:结点子树的个数;

树的度: 树中最大的结点度;

叶子结点:也叫终端结点,是度为 0 的结点;

分枝结点:度不为0的结点;

有序树:子树有序的树,如:家族树;

无序树:不考虑子树的顺序。

4.排序

堆排序(Heap Sort):

堆排序利用了一种称为堆的数据结构。堆通常是一个近似完全二叉树,可以是最大堆或最小堆。在最大堆中,父节点的值总是大于或等于其子节点的值。

堆排序的过程大致分为两个步骤:建堆和排序。首先,将待排序的数组构建成一个最大堆(或最小堆)。然后,通过不断地将堆顶元素(即最大或最小元素)与末尾元素交换,并重新调整堆,来实现排序。

堆排序的时间复杂度通常是O(nlogn),并且空间复杂度为O(1),是一种比较高效的排序算法。

冒泡排序(Bubble Sort):

冒泡排序是一种简单的排序算法,通过重复遍历待排序的数列,比较相邻的元素,如果它们的顺序错误就交换它们的位置。

这个过程会重复进行,直到没有更多的元素需要交换,这意味着数列已经排序完成。

冒泡排序的时间复杂度在最坏和平均情况下都是O(n^2),其中n是待排序元素的数量。因此,对于大数据集,冒泡排序可能不是最高效的选择。

插入排序(Insertion Sort):

插入排序的工作方式是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

具体来说,插入排序将第一个元素看做一个有序序列,把第二个元素到最后一个元素依次加入到有序序列当中。每向有序序列中加入一个新的元素,都从后向前比较大小,找到第一个比新元素小的元素,然后将新元素插入到该元素的后面。

插入排序在数据量较小或数据基本有序时表现较好,其时间复杂度在最坏情况下是O(n^2),但在最好情况下(即数据已经部分排序)可以更快。

快速排序(Quick Sort):

快速排序是一种高效的排序算法,采用了分而治之的策略。它选择一个“基准”元素,然后将数组分为两部分:一部分包含比基准小的元素,另一部分包含比基准大的元素。这个过程递归地应用于这两部分,直到整个数组有序。

快速排序的性能在很大程度上取决于基准元素的选择。常见的选择方法包括随机选择、固定位置选择和三数取中法。

快速排序的平均时间复杂度为O(nlogn),但在最坏情况下(如输入数组已经有序)会退化到O(n^2)。因此,实现快速排序时需要注意避免最坏情况的发生。

5.“码”概念及其含义

外码(拼音):是关系数据库中的一个概念,主要用于建立表与表之间的关联关系。具体来说,外码是指一个表中的字段,它引用了另一个表中的主码。例如,假设有两个表:订单表(Order)和客户表(Customer)。如果订单表中的每个订单都需要关联到一个客户,那么在订单表中就可以定义一个外码字段,引用客户表中的客户ID(主键)。外码的作用包括保证数据的完整性、实现关联查询、维护表之间的关系以及支持数据操作的自动化。

内码:是指计算机汉字系统中使用的二进制字符编码,它是沟通输入、输出与系统平台之间的交换码。通过内码,可以达到通用和高效率传输文本的目的。例如,在MS Word中所存储和调用的就是内码而非图形文字。中文的内码有多种,如GB2312、GB12345、GB13000等,它们都是用于表示中文字符的双字节或四字节编码。

地址码:是数据报文的第一个字节,它表示从指定地址的从机采集数据。也就是说,每个从站需要提前设置好一个唯一的地址码,以便接收主机传送的数据采集命令。地址码在数据通信和自动化系统中起着关键作用,确保数据能够准确地从指定的设备或节点中采集和传输。

字形码(汉字):是用于描述字符在屏幕上或打印输出时的具体形状的编码,字形码通常包含有关字符大小、位置、线条粗细等详细信息,以便显示设备能够准确地呈现字符,字形码通常用于图形显示和打印技术中;=国标码+8080H;

BCD码:每个十进制数字由四位二进制数表示。例如,十进制数45在BCD码中表示为0100 0101,BCD码常用于需要精确表示十进制数的场合,如金融和工程计算;

国标码与区位码:区位码(16进制)+2020H = 国标码;

6.常用数据结构

线性表(长度主要由节点数量决定):即线性结构(顺序存储:存储空间连续/简单直观,可以访问任意节点/但大小固定,所需空间更大。插入与删除操作需要移动大量元素;链式存储:存储序号不连续,各节点在存储空间中的位置关系与逻辑关系不一致,节点包含数据与下一个节点的指针//)

数组(Array):线性数据结构,用于存储同一类型的元素。通过索引访问元素,速度快。固定大小,不能动态增长或缩小。

链表(Linked List):由一系列节点组成,每个节点包含数据和指向下一个节点的指针。可动态添加或删除元素。访问元素需从头开始遍历。常见类型有单向链表、双向链表和循环链表。

栈(Stack:top指针的变化决定元素个数):后进先出(LIFO)的数据结构。主要操作有入栈(push)和出栈(pop)。常用于函数调用、括号匹配等场景。

队列(Queue):先进先出(FIFO)的数据结构。主要操作有入队(enqueue)和出队(dequeue)。常用于任务队列、缓冲区等场景。

树(Tree):非线性数据结构,由节点和边组成。每个节点可以有多个子节点。常见类型有二叉树、平衡二叉树、AVL树、红黑树、B树等。用于文件系统、数据库索引等。

图(Graph):由节点(顶点)和边组成。可以表示复杂的关系网络。常见操作有遍历(深度优先搜索、广度优先搜索)、查找最短路径等。

哈希表(Hash Table):通过哈希函数将键映射到存储位置。提供快速的插入、删除和查找操作。平均时间复杂度接近O(1)。

堆(Heap):特殊的完全二叉树,通常用于实现优先队列。可以是最大堆或最小堆,满足堆属性。用于排序算法(如堆排序)、数据压缩等。

集合(Set):不包含重复元素的集合。支持添加、删除和查找元素。常用于数学运算、去重等场景。

映射(Map)或字典(Dictionary):存储键值对的数据结构。可以通过键快速查找对应的值。在编程中常用于存储变量名和值之间的映射关系。

7.模式含义

外模式(External Schema:反映用户对数据的要求)是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。它是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,而一个应用程序只能使用一个外模式。

内模式(Internal Schema:反映数据在计算机物理结构中的存储形式),也称存储模式(Storage Schema),是数据物理结构和存储方式的描述。它详细说明了数据在数据库内部的表示方式,包括记录的存储方式(如顺序存储、B树结构存储或hash方法存储)、索引的组织方式、数据的存储记录结构等。一个数据库只有一个内模式。内模式是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法,旨在减少数据冗余、实现数据共享,并提高存取效率和性能。

概念模式(Conceptual Schema:反映设计者的数据全局逻辑要求)也称信息模型,它是按用户的观点来对数据和信息进行建模的。它用于信息世界的建模,是现实世界对机器世界的一个中间层次,是数据库设计的有力工具,也是数据库设计的人员和用户之间进行交流的语言。概念模型需要有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,同时需要简单、清晰、易于用户理解。常用的表示方法是E-R方法(实体-联系方法)。

逻辑模式:它在数据库管理系统中通常指的是数据库的整体逻辑结构,它描述了数据的组织方式、关系以及完整性约束等。逻辑模式介于外模式和内模式之间,它对外模式提供了数据逻辑视图的定义,对内模式提供了数据的物理存储结构的描述。

8.关系模型中的约束

数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。关系模型中三类完整性约束:
– 实体完整性(Entity Integrity)
– 参照完整性(Referential Integrity)
– 用户定义的完整性(User-defined Integrity)
    实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持

实体完整性(Entity Integrity):保证关系中的每个元组都是可识别的和唯一的,关系数据库中所有的表都必须有主键(必须存在一个或多个关键字),由于实体必须可区分,表中不允许存在如下记录:
– 无主键值的记录
– 主键值相同的记录

参照完整性(Referential Integrity):也称为引用完整性
• 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用
• 参照完整性就是描述实体之间的联系的,一般是指多个实体或关系之间的关联关系。

参照完整性规则就是定义外键与被参照的主键之间的引用规则,外键一般应符合如下要求:
– 或者值为空
– 或者等于其所参照的关系中的某个元组的主键值

用户定义的完整性(User-defined Integrity):实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾。

9.数据库关系运算:

自然连接:是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。

交:关系R与关系S的交运算结果由既属于R又属于S的元组(即R与S中相同的元组)组成一个新关系。如果两个关系没有相同的元组,那么它们的交为空。

除:关系R与关系S的交运算结果由既属于R或属于S的元组(即R和S的所有元组合并),删去重复元组,组成一个新关系,其结果仍为n元关系。

并:设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。

投影:投影是选取关系中列的子集,结果不是原来的关系,而是几列属性,会消除重复列。

选择:选出部分行

差:结果相减即可(所有运算,表头属性不在内)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值