- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
计算机⼆级Python公共基础要点+真题题库考试系统下载
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)。
空间复杂度(SpaceComplexity)
存储算法本⾝所占⽤的存储空间
算法的输⼊输出数据所占⽤的存储空间
算法在运⾏过程中临时占⽤的存储空间
算法的输⼊输出数据所占⽤的存储空间是由要解决的问题决定的,是通过参数表由调⽤函数传递⽽来的,它不随本算法的不同⽽改变。存储
算法本⾝所占⽤的存储空间与算法书写的长短成正⽐,要压缩这⽅⾯的存储空间,就必须编写出较短的算法。算法在运⾏过程中临时占⽤的
存储空间随算法的不同⽽异,有的算法只需要占⽤少量的临时⼯作单元,⽽且不随问题规模的⼤⼩⽽改变,我们称这种算法是“就地进⾏
的,是节省存储的算法,如这⼀节介绍过的⼏个算法都是如此;有的算法需要占⽤的临时⼯作单元数与解决问题的规模n有关,它随着n的增
⼤⽽增⼤,当n较⼤时,将占⽤较多的存储单元,例如将在第九章介绍的快速排序和归并排序算法就属于这种情况。
1.2数据结构
数据结构的定义
程序=数据结构+算法
在计算机科学中,数据结构(datastructure)是计算机中存储、组织数据的⽅式。指相互之间存在⼀种或多种特定关系的数据元素的集
合。通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。
1.数据的逻辑结构:
反映数据元素之间的关系的数据元素集合的表⽰。数据的逻辑结构包括集合、线形结构、树形结构和图形结构四种。
2.数据的存储结构:
数据的逻辑结构在计算机存储空间种的存放形式称为数据的存储结构。常⽤的存储结构有顺序、链接、索引等存储结构。
常见的数据结构:
数组(Array)
堆栈(Stack)
队列(Queue)
链表(LinkedList)
树(Tree)
图(Graph)
堆(Heap)
散列表(Hash)
线性结构和⾮线性结构
根据数据结构中各数据元素之间前后件关系的复杂程度,⼀般将数据结构分为两⼤类型:线性结构和⾮线性结构。
1.3线性表
线性表的定义
线性表(LinearList)是由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)。当表中没有元素时称为栈空。栈顶元素总是后被
您可能关注的文档
最近下载
- 《中国共产党纪律处分条例》六大纪律内容提纲(二).pdf VIP
- 电梯安全管理培训感想课件.pptx VIP
- 大载荷无人机应急救援系统技术要求.docx VIP
- 高考语文阅读专题散文阅读练习-(精品·课件).ppt VIP
- sap hanna studio自总结_hana创建用户.pdf VIP
- 系统性红斑狼疮疾病活动度评分表(SLEDAI-2000).docx VIP
- 豪恩汽电首次覆盖报告:智驾感知层国产龙头,新能源与出海打开成长空间.pdf
- 《机井井管标准》SL154-2013.pdf VIP
- 高考语文阅读专题:散文阅读.doc VIP
- 新教科版一年级上册科学《我们知道的植物》ppt教学课件.pptx VIP
文档评论(0)