计算机二级Python公共基础要点+真题题库考试系统下载

本文详细介绍了计算机二级Python考试中关于数据结构与算法的重点,包括算法的时间复杂度和空间复杂度分析,线性表、栈、队列、链表、树和二叉树的基本概念和操作,以及程序设计基础中的结构化程序设计和面向对象编程。此外,还涵盖了软件工程基础,如软件生命周期、结构化分析方法和设计,以及数据库设计基础。内容深入浅出,是备考的宝贵资料。
摘要由CSDN通过智能技术生成

1. 基本数据结构与算法

1.1 算法的基本概念

算法是一种设计好的计算序列,用来解决一类问题。
算法复杂的包括:时间复杂度和空间复杂度。时间复杂度指计算工作量,空间复杂度指内存空间的要求。

综合起来:如果一个算法的执行次数是 T(n),那么只保留最高次项,同时忽略最高项的系数后得到函数 f(n),此时算法的时间复杂度就是 O(f(n))。为了方便描述,下文称此为 大O推导法。

  • 对于一个循环,假设循环体的时间复杂度为 O(n),循环次数为 m,则这个
    循环的时间复杂度为 O(n×m)。

此时时间复杂度为 O(n × 1),即 O(n)。

  • 对于多个循环,假设循环体的时间复杂度为 O(n),各个循环的循环次数分别是a, b, c…,则这个循环的时间复杂度为 O(n×a×b×c…)。分析的时候应该由里向外分析这些循环。

此时时间复杂度为 O(n × n × 1),即 O(n^2)。

  • 对于顺序执行的语句或者算法,总的时间复杂度等于其中最大的时间复杂度。

此时时间复杂度为 max(O(n^2), O(n)),即 O(n^2)。

  • 对于条件判断语句,总的时间复杂度等于其中 时间复杂度最大的路径 的时间复杂度。

此时时间复杂度为 max(O(n^2), O(n)),即 O(n^2)。

空间复杂度(Space Complexity)

S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。渐近空间复杂度也常常简称为空间复杂度。
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在计算机存储器上所占用的存储空间,包括:考试必备!最新计算机二级考试题库 上机考试系统 网课教材等资料!2021年12月计算机二级考试专用资料!快来知识兔www.zhishitu.com领课程!https://mp.weixin.qq.com/s/WFiZKrE9RL34aesOyJKg6Q

  • 存储算法本身所占用的存储空间
  • 算法的输入输出数据所占用的存储空间
  • 算法在运行过程中临时占用的存储空间

算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表由调用函数传递而来的,它不随本算法的不同而改变。存储算法本身所占用的存储空间与算法书写的长短成正比,要压缩这方面的存储空间,就必须编写出较短的算法。算法在运行过程中临时占用的存储空间随算法的不同而异,有的算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变,我们称这种算法是“就地"进行的,是节省存储的算法,如这一节介绍过的几个算法都是如此;有的算法需要占用的临时工作单元数与解决问题的规模n有关,它随着n的增大而增大,当n较大时,将占用较多的存储单元,例如将在第九章介绍的快速排序和归并排序算法就属于这种情况。

1.2 数据结构

数据结构的定义

程序=数据结构+算法

在计算机科学中,数据结构(datastructure)是计算机中存储、组织数据的方式。指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

  1. 数据的逻辑结构
    反映数据元素之间的关系的数据元素集合的表示。数据的逻辑结构包括集合、线形结构、树形结构和图形结构四种
  2. 数据的存储结构
    数据的逻辑结构在计算机存储空间种的存放形式称为数据的存储结构。常用的存储结构有顺序、链接、索引等存储结构。

常见的数据结构:

数组(Array)
堆栈(Stack)
队列(Queue)
链表(Linked List)
树(Tree)
图(Graph)
堆(Heap)
散列表(Hash)
线性结构和非线性结构

根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构。

1.3 线性表

线性表的定义
线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。

  • 数据元素的个数n定义为表的长度 = “list”.length() (“list”.length() = 0(表里没有一个元素)时称为空表)
  • 将非空的线性表(n>=0)记作:(a[0],a[1],a[2],…,a[n-1])
  • 数据元素a[i](0≤i≤n-1)只是个抽象符号,其具体含义在不同情况下可以不同

常见的线性表有顺序表链表
顺序表是线性表的顺序存储结构,指的是用一组地址连续的存储单元依次存储线性表的数据元素。
顺序表常见操作*(括号中为算法平均时间复杂度,没有写明的具体复杂度依赖不同算法和运算规则)*:

插入(O(n))、删除(O(n))、查找、排序、分解、合并、复制(O(n))、逆转(O(n))

1.4 栈和队列

栈实际上也是一个线性表,只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除这一端为栈顶(TOP),另一端为栈底(BOTTOM)。当表中没有元素时称为栈空。 栈顶元素总是后被插入(入栈)的元素,从而也是最先被移除(出栈)的元素;栈底元素总是最先被插入的元素,从而也是最后才能被移除的元素。所以栈是个**后进

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值