- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构复习资料,java数据结构期末考试
算法分析
算法分析是计算机科学的基础
增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用
渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n增加时表达式中增长最快的那一项。
渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。
渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为相同类型的函数。
只有可运行的语句才会增加时间复杂度。
O() 或者 大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂度。
增长函数 阶次 t(n)=17 O(1) t(n)=3log n O(log n) t(n)=20n-4 O(n) t(n)=12n log n + 100n O(n log n) t(n)=3 + 5n - 2 O() t(n)=8 + 3 O() t(n)=+ 18 +3n O() 所有具有相同阶次的算法,从运行效率的角度来说都是等价的。
如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。
要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。(n表示的是问题的大小)
分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。
方法调用的复杂度分析:
如:public void printsum(int count){
int sum = 0 ;
for (int I = 1 ; I count ; I++)
sum += I ;
System.out.println(sun);
}
printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复杂度为O()。
13指数函数增长 幂函数增长 对数函数增长
第三章 集合概述——栈
集合是一种聚集、组织了其他对象的对象。它定义了一种特定的方式,可以访问、管理所包含的对象(称为该集合的元素)。集合的使用者——通常是软件系统中的另一个类或对象——只能通过这些预定的方式与该集合进行交互。
集合可分为线性集合和非线性集合。线性集合是一种元素按直线方式组织的集合。非线性集合是一种元素按某种非直线方式组织的集合,例如按层次组织或按网状组织。从这种意义上来说,非线性集合也许根本就没有任何组织形式。
集合中的元素通常是按照它们添加到集合的顺序,或者是按元素之间的某种内在关系来组织的。
抽象能隐藏某些细节。
集合是一种隐藏了实现细节的抽象。
对象是用于创建集合一种完美机制,因为只要设计正确,对象的内部工作对系统其他部分而言是被封装的。几乎在所有情况下,在类中定义的实例变量的可见性都应声明为私有的(private)。因此,只有该类的方法才可以访问和修改这些变量。用户与对象的唯一交互只能通过其公用方法。公用方法表示了对象所能提供的服务。
数据类型是一组值及作用于这些数值上的各种操作。
抽象数据类型(ADT)是一种在程序设计语言中尚未定义其值和操作的数据类型。ADT的抽象性体现在,ADT必须对其实现细节进行定义,且对这些用户是不可见的。因此,集合是一种抽象数据类型。
数据结构是一种用于实现集合的基本编程结构。
Java集合API(应用程序编程接口)是一个类集,表示了一些特定类型的集合,这些类的实现方式各不相同。
栈的元素是按照后进先出(LIFO)的方式进行处理的,最后进入栈中的元素最先被移出。栈是一种线性集合,元素的添加和删除都在同一端进行。在科学计算中,栈的基本使用就是用于颠倒顺序(如一个取消操作)。
通常垂直的绘制栈,栈的末端称为栈的顶部,元素的添加和删除在顶部进行。
如果pop或者peek可作用于空栈,那么栈的任何实现都要抛出一个异常。集合的作用不是去确定如何处理这个异常,而是把它报告给使用该栈的应用程序。在栈中没有满栈的概念,应由栈来管理它自己的存储空间。
栈的toString()操作可以在不修改栈的情况下遍历和现实栈的内容,对调试非常有用。
类型兼容性是指把一个对象赋给引用的特定赋值是否合法。
继承就是通过某个现有类派生出一个新类的过程。多态:使得一个引用可以多次指向相关但不同的对象类型,且其中调用的方法是在运行时与代码。多态引用是一个引用变量,它可以在不同地点引用不同类型的对象。继承可用于创建一个类层次,其中,一个引用变量可用于只想与之相关的任意对象。类层次:通过继承创建的类之间的关系,某个类的子类可以成为其他类的父类
一个Object引用可用于引用任意对象,
您可能关注的文档
- 工程热力学与发动机原理各章复习题及复习提纲.doc
- 工程结构第1阶段测答案.doc
- 工程仿真课程设计.docx
- 工程抗震与防灾试卷及答案.doc
- 工业407.docx
- 布瑞克农产品期货中国玉米进口贸易格局规模分析.docx
- 巧妙构造新函数解决数学问题.doc
- 带人防结构地下室剪力墙裂缝实例分析.doc
- 常州市继续教育《沟通与协调能力》81分,2016712考.doc
- 常见共沸物的组成及沸点.docx
- 广东省四会市实验中学2025-2026学年高二上学期期中考试英语试卷(含解析).docx
- 辽宁省抚顺市新宾满族自治县2025--2026学年九年级上学期第一次月考历史试卷.docx
- TCECS 1490-2023 智慧城市道路设计标准.pdf
- 个人求职简历模版(3页)带封面(可编辑)古代文学风下载.docx
- 重症肺炎支原体肺炎风险的可解释机器学习预测模型构建.pdf
- 重载列车离散积分终端滑模预测控制.pdf
- 主体间性视角下情境教学的话语实践机制.pdf
- 周期供应条件下舰船备件利用率计算及应用.pdf
- 2025年11月5日河南省实验中学八年级竞赛班期中考试数学试卷.docx
- 辽宁省本溪市2025-2026学年七年级上学期11月期中道德与法治试题.docx
原创力文档


文档评论(0)