您现在的位置是:首页 > 正文

计算机二级基础知识简单汇总

2024-02-01 06:35:48阅读 2

计算机基础笔记

数据结构与算法

  • 指针是存储空间的地址,而不是数据
  • 栈:后进先出
  • 栈顶指针:栈顶元素的地址top
  • 栈底指针:栈底指针的地址bottom
  • top = bottom(前提:栈底元素唯一)栈为空
  • 栈元素个数计算公式abs(top-bottem)+1
  • 如果栈顶指针超过了储存空间,那么top=bottom,栈为空,在那边超出那边为bottom
  • 链:含有前键和后键,数据元素由两部分组成:数据域,指针域
  • 带链的栈:栈内任意一个元素均可通过指针域的改变而发生更改,这种情况下栈底指针可以改变

队列

  • 与栈一样是线性结构
  • 先进先出
  • front:队头元素的前一个位置
  • rear:队尾最后一个元素
  • 循环队列元素个数,一般队列rear>front,但对于循环队列rear和front大小未知,rear-front>0,便是循环队列元素,<0时加上容量,=0时为空或全满
    线性链表
  • 线性链表(线性表的链式储存)由数据域和指针域两部分组成,也是线性结构
  • 特殊的,双向链表的指针域由前件指针和后件指针组成
    HEAD头指针
  • 线性表的插入删除效率不高,需要移动位置,而线性链表直接更改地址,没有覆盖,效率较高,但浪费储存空间
  • 线性链表不一定按本身逻辑结构存储,但线性表的顺序结构需要按逻辑结构和物理结构
  • 二分查找法只适用于顺序储存的有序线性表
  • 另外,链表可分为双向链表与二叉链表,前者是线性的,后者是非线性的

树与二叉树

  • 子节点每个节点后可以有多个后件,称为子节点
    没有后件的节点称为叶子节点
  • 度:一个节点所拥有的后件的个数称为该节点的度,叶子结点的度为0
  • 树的度:所有节点中的最大的度
  • 树的深度:树的层数
  • 二叉树:非线性的数据结构,子节点的数量最多为两个
  • 满二叉树:节点全
  • 完全二叉树:前k-1层全满,最后一层从右侧削减
  • 三个性质:NO.1.第k层的节点数为2**(k-1);NO.2.k层节点总数为2**k -1;NO.3.度为0的节点(叶子节点)总比度为2的节点多一个
  • 三种遍历方式:前序遍历,中序遍历,后序遍历
  • 扇入:指调用某个模块所用的前件数量,其中最大扇入指二叉树中某个节点前件最多的节点的前件的数量
  • 类似的最大扇出:某个节点后件最多的节点的后件的数量
  • 查找和排序
    顺序查找/顺序搜索:在长度为n的线性表中最坏的情况下需要查找n次
    二分查找法:适用于有序线性表,需要查找log2(n)次(不要求计算)
    交换类排序:
    冒泡排序法:最简单的交换类排序方法,相邻之间两两交换;最坏情况下比较n(n-1)/2次
    快速排序法/分区交换排序法:与自己选取的标准值进行比较;最坏情况下需要比较n(n-1)/2次,每次都会产生逆序
    插入类排序
    简单排序法,最坏情况下需要n(n-1)/2次
    希尔排序法,分成小区间再进行排序,最坏情况下需要O(n1.5)次
    选择类排序
    简单选择排序:选出最小的放前边,最坏情况下需要n(n-1)/2次
    堆排序法:与完全二叉树结合在一起判断是不是堆,下面的子节点的值必须同时大于根节点,最坏情况下要比较O(nlog2(n))次

程序设计基础

  • 程序=算法+数据结构
  • 语言分类:机器语言、汇编语言、高级语言
  • 编码风格:可读性好,易测试,易维护,清晰第一,效率第二
  • 注释分类:序言性注释,描述性注释
  • 结构化程序设计方法的主要原则:自顶向下,逐步求精,模块化,限制使用goto语句
  • 面向对象的程序设计主要考虑的是提高软件的可重用性
  • 对象的基本特点:标志唯一性,分类性,多态性(同样的信息被不同的对象接受时可导致不同行动的现象),封装性(信息隐蔽是通过对象的封装性来实现的),模块独立性好(高内聚,低耦合),
  • 类:指的是具有共同属性,共同方法的对象的集合。类是对象的抽象,对象的对应类的一个特例
  • 消息:对象之间交流的机制,与类无关
  • 继承:指能直接获得已有的性质和特征,分为单继承和多继承,是面向类而言的,提高了软件可重用性
  • 方法:指对象的接口,对象的属性只能通过方法来进行修改

软件工程基础

  • 软件:计算机软件是包括程序、数据以及相关文档的集合
  • 软件特点:
    软件是一种逻辑实体,而不是逻辑实体,具有抽象性
    软件在开发、运行过程中对计算机系统具有依赖性,导致软件兼容和移植的问题
    软件没有明显的制作过程
    软件在运行,使用期间不存在磨损,老化问题
    软件复杂度高,成本昂贵
    软件开发涉及诸多的社会因素
    软件危机主要表现:
    软件需求的增长得不到满足
    软件开发的成本和进度无法控制
    软件质量难以控制
    软件不可维护或维护程度非常低
    软件成本不断提高
    软件开发生产利用率的提高赶不上硬件的发展和应用需求的增长
    即成本、质量、生产率等问题
  • 软件工程3要素:方法、工具和过程
  • 软件的5个生命周期:产品提出,实现,使用,维护,停止使用退役;分为定义,开发,维护三阶段
  • 三阶段
    软件定义阶段:制定计划、需求分析。ps:写到需求规格说明书,只和数据、文档有关系,与程序指令无关系
    软件需求规格说明书是需求分析阶段的最后成果
    软件开发阶段:1.软件设计:概要设计(宏观)、详细设计/局部设计/微观设计/过程设计(微观);2.软件实现;3.软件测试(测试依据是需求规格说明书,只和程序指令有关系)
    1.软件概要设计的基本任务是:
    1)设计软件系统结构
    2)数据结构以及数据库设计
    3)编写概要设计文档
    4)概要设计文档评审
    概要设计常用的软件结构设计工具是结构图,也称为系统结构图,结构图中带箭头的连线表示模块之间的调用关系
    关于系统结构图
    深度越深宽度越宽说明系统越复杂
    原子模块:树中位于叶子节点的模块
    概要设计里数据流的类型有变换型(数据会变化)和事务型(数据会分配传递)
    2.详细设计的设计工具有
    图形工具:程序流程图(PFD)、N-S图(方框图)、PAD、HIPO.
    表格工具:判定表
    语言工具:PDL(伪码)
    程序流程图中的箭头代表的是控制流
    3.软件测试是为了发现错误而执行程序的过程,只发现不改进错误,不能也不可能证明程序没有错误,也不可能发现全部错误
    软件测试的对象包括:源程序,目标程序,数据,相关文档
    按方法有
    白盒测试:主要方法有逻辑覆盖,基本路径测试
    黑盒测试:测试的是外部功能与特性,依据需求规格说明书,主要方法是等价类划分法,边界值分析法,错误推测法和因果图
    软件测试过程按步骤分为4个步骤,即单元测试、集成测试、确认测试(验收测试)和系统测试
    单元测试:主要是白盒测试
    集成测试:看单元是否冲突,看得是环节,主要是发现与接口有关的错误,集成测试的依据是概要设计说明书
    确认测试:验证软件的有效性,依据是软件需求规格说明书,主要是黑盒测试
    系统测试:环境参与做的测试,测试用例是根据软件需求规格说明书,重点是环境
    程序调试:诊断和改正程序中的错误
    软件运行维护阶段:软件生命周期中花费最多的阶段。
  • 软件工程研究:软件开发技术和软件工程管理
  • 结构化分析:需求分析阶段(分析数据)
  • 分析方法有结构化分析方法(重视过程),面向对象的分析方法(重视结果)
  • 结构化分析的常用工具:
    数据流图:用来描述数据流向的图形
    数据字典:结构化分析方法的核心
    判定表:以表格的形式将条件融合数据分析
    判定树:按不同类别不断细分,得到数据分析
  • 数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,直接支持系统的功能/需求建模

数据库设计基础

  • 数据库(DB)具有统一的结构形式,存放于统一的储存介质中
  • 数据库的根本目标是解决数据共享问题
  • 数据库管理系统(DBMS)是一种系统软件,定义、操纵、控制,是数据库系统的核心
  • 数据库管理系统提供1.数据定义语言(DDL)创建,存储(创始人一般的工作)2.数据操纵语言(DML)包括查询及增、删、改(员工一般的工作)3.数据控制语言(DCL)负责数据完整,安全,检查,并发控制,故障恢复(医生一般的工作)
  • 数据库管理员(DBA)
  • 数据库系统(DBS)5部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬性平台(硬件)、系统平台之二——软件平台(软件)。
  • 数据库应用系统(DBAS)
  • 数据库系统的基本特点:数据的集成性、数据的高分享型和低冗余性、数据独立性(物理独立性和逻辑独立性)
  • 数据库系统的内部结构体系
    三级模式:概念模式(纯粹对数据本身【条形码】),外模式(用户模式,由概念模式推导而出【牙膏】),内模式(物理模式,操作系统和文件级别,未涉及设备级【存储、写入和空间调整】)
    二级映射:概念模式与外模式,概念模式与内模式

数据模型

  • 数据模型是数据库设计的核心
  • 实体:存在的并可相互区分的任何事物
  • 属性:实体代表的特定事物所具有的某方面的特征
    数据模型可分为
    1.概念数据模型(概念模型),主要有E-R模型(实体联系模型entity-relationship model)、扩充的E-R模型、面向对象模型及谓语模型。面相对象
    E-R模型:实体,关系,属性(由数据流图设计E-R图)
    不依赖于具体的计算机系统,不是DBMS支持的数据模型
    2.逻辑数据模型(数据模型),主要有,层次模型、网状模型、关系模型、面像对象模型等
    物理数据模型(物理模型)
    逻辑设计的主要工作是将E-R图转化为关系模型
    关系模式
    关系模型等价于二维表
    码/主码/关键词/主键/主属性:没有重复,可以唯一区分
    外键:在一个表中不是主键,但另一个表中是主键
    函数依赖:一个元素能推出另一个元素
    范式
    第一范式1NF:关系模式R中无重复的列
    第二范式2NF:非主属性依赖于主键,没有不依赖的
    第三范式3NF:非主属性不传递依赖于键
    BC范式BCNF:每个属性都不传递依赖于键

集合运算

1)并,前提列相同
2)差,前提列相同,在原表中每一行去除被减表的相同行,保留下原表的改动
3)交,前提列相同
4)笛卡尔积:行与行的重新组合,按照排列组合方式联接
5)除法:行与行的重新拆分
关系数据库管理系统能实现的专门关系运算有三种操作:
选择、投影与联接
1)选择:选行
2)投影:选列
3)联接:拼接成一个可能更宽的列表
连接运算,找到符合列条件的行加宽
自然连接运算,找到两个表中取值相等的列,组成一个新的表,当行重复保留一次

数据库设计与管理

  • 数据库开发阶段:需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段,编码阶段,测试阶段,运行阶段,经一步修改阶段
  • 数据库的设计阶段是前四个阶段,需求分析(形成需求说明书)概念设计(形成概念数据模型)逻辑设计(形成逻辑数据模型)物理设计(形成数据库模式)
  • 过程:建立概念模型,建立逻辑模型
  • 关系视图设计是外模式设计
  • 数据库的物理设计:提高访问速度和有效利用存储空间,影响数据的访问效率

网站文章

  • 对Numpy库ndarray对象(矩阵)中的数据元素的访问、选取操作示例

    对Numpy库ndarray对象(矩阵)中的数据元素的访问、选取操作示例

    为了说明这个问题,选初始化一个矩阵B,其尺寸为两行四列三通道。 代码如下: # !/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np B = np.array([[[11, 12, 13, 14], [15, 16, 17, 18]], [[19, 20, 21, 22], [23, 24, 25, 26]], [[2

    2024-02-01 06:35:43
  • GPT带我学-设计模式-模板模式

    GPT带我学-设计模式-模板模式

    GPT教我学习模板模式

    2024-02-01 06:00:20
  • 2019研究生学费估计参考

    2019研究生学费估计参考

    2019研究生学费估计 研究生考试的时间点: 预报名时间 为2018年9月24日至9月27日,每天9:00—22:00 网上报名时间 为2018年10月10日至10月31日,每天9:00-22:00 登录“中国研究生招生信息网”(http://yz.chsi.com.cn或http

    2024-02-01 06:00:12
  • jqgrid单元格合并

    jqgrid单元格合并

    jqgrid是动态加载数据的,所以我们得动态的给每个需要合并的单元格设定id

    2024-02-01 06:00:05
  • 数据库进阶——什么是事务

    数据库进阶——什么是事务

    事务 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。 事务的语法 事务的特性 事务并发问题 事务隔离级别 不同隔离级别的锁的情况 隐式提交 1、...

    2024-02-01 05:59:35
  • 共生·敏捷·进化,第二届全球DSO大会强势来袭!

    共生·敏捷·进化。12月1日,DSO 2022将于北京正式开幕。

    2024-02-01 05:59:28
  • 简单C语言的词法分析器(Java实现)

    简单C语言的词法分析器(Java实现)

    一、C语言子集的单词符号及内置码单词符号种别编号助记符内置码while1whilenullif2ifnullelse3elsenullswitch4switchnullcase5casenull标识符6idid的实际内容常数7numnmu的实际内容+8+null-9-nu...

    2024-02-01 05:59:18
  • springboot整合Elasticsearch简单操作

    springboot整合Elasticsearch简单操作

    以下步骤均参考Elasticsearch操作文档:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java...

    2024-02-01 05:58:47
  • 怎样修改iis 服务器日期,怎么在IIS里设置服务器端缓存时间?

    设置IIS缓存的方法1.测试,可以缓存整个Share工程(经测试IIS中的缓存测试对ASPX页面不起作用,估计与页面压缩的设置原理一样);2.需要设置缓存的工程: Share,Portal(根据IIS...

    2024-02-01 05:58:40
  • 盘点6个实用的Python 技巧

    盘点6个实用的Python 技巧

    每种产品具体的特征都不一样,如果用静态属性的将字典转成对象的话,代码会非常乱而且无法管理,但如果用动态属性的话,下面三行代码就能搞定(用 setattr())。当登录时,你需要输入你的用户名和密码,用...

    2024-02-01 05:58:07