20172305 2018-2019-1 《Java软件结构与数据结构》第一周学习总结
20172305 2018-2019-1 《Java软件结构与数据结构》第一周学习总结
教材学习内容总结
本周内容主要为书第一章和第二章的内容:
第一章
- 软件质量:
- 正确性(软件达到特定需求的程度)
- 可靠性(软件发生故障的频率和危害程度)
- 健壮性(很好处理错误情况的情况)
- 可用性(用户在软件中掌握和运行任务的容易程度)
- 可维护性(软件进行修改的容易程度)
- 可重用性(软件组件可被其他软件系统开发使用的容易程度)
- 可移植性(软件组成可用于多种计算机环境中的容易程度)
- 运行效率(不浪费资源的情况下软件完成其目标的程度)
- 数据结构(计算机存储、组织数据的方式):数组 栈 队列 链表 二叉树 哈希表 堆 图
- 程序 = 数据结构 + 算法
- 软件 = 程序 + 软件工程
- 软件质量:
第二章
算法分析
大O记法(实质上是算法复杂度发展趋势的反应)

增长函数:表示问题(n)大小与我们希望最优化的值之间的关系
- 时间复杂度(定量描述了该算法的运行时间)--CPU使用时间
- 空间复杂度(运行完一个程序所需内存的大小)--内存空间
渐进复杂度称为算法的阶次(忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出的)
教材学习中的问题和解决过程
问题1:提高CPU的速度并不一定能提高处理速度
问题1解决方案:算法的阶次为常量[即复杂度为O(1)]或是线性阶次[即复杂度为O(n)],提高CPU速度才会线性地提高处理速度。随着算法复杂度的增长,处理器的速度对复杂度的影响越来越小。不同的复杂度,在提高相同倍速的处理器,其运行效率是不同的。

- <img src="https://images2018.cnblogs.com/blog/1333004/201809/1333004-20180909143824857-1738430688.png"width="10%"height="30%"/>
- <img src="https://images2018.cnblogs.com/blog/1333004/201809/1333004-20180909144017888-818385398.png"width="10%"height="30%"/>
- <img src="https://images2018.cnblogs.com/blog/1333004/201809/1333004-20180909144048327-1940351079.png"width="10%"height="30%"/>
问题2:时间复杂度的分析
问题2解决方案:
- 循环的时间复杂度等于循环体的复杂度乘以该循环运行次数。时间复杂度O(n)
for(int count = 0;count<n;count++)
{
//*复杂度为O(1)的步骤系列
}
- 循环出现嵌套时,循环的复杂度等于内层循环的复杂度乘以外层循环的复杂度。时间复杂度O(n^2)
for(int count = 0;count < n;count++)
{
for(int count2 = 0;count2<n;count2++)
{
//复杂度为O(1)的步骤系列
}
}
- 方法调用的复杂度,要考虑循环体的阶和调用方法的阶。时间复杂度O(n^2)
for(int count = 0;count<n;count++)
{
printsum(count);
}
public void printsum(int count)
{
int sum = 0;
for(int I = 1;I<count;I++)
sum += I;
System.out.println(sum);
}
问题3:增长函数的比较
问题3的解决方案:增长函数函数图
- n较小时:

- n较大时:

- 结论:c < log2N < n < n * Log2N < n^2 < n^3 < 2^n < 3^n < n!
- n较小时:
- (1)下列增长函数的阶次是多少?

- (2)请确定下面代码段的增长函数和阶次

- 答案:

- (3)请确定下面代码段的增长函数和阶次

- 答案:

结对与互评
点评(王禹涵)
- 博客中值得学习的或问题:
- 没有什么问题,很完美的博客。
- 基于评分标准,我给本博客打分:5分。
- 得分情况如下:
- 正确使用Markdown语法(加1分)
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 无问题
- 感想,体会不假大空的加1分
- 点评认真,能指出博客和代码中的问题的加1分
点评(方艺雯)
- 博客中值得学习的或问题:
- 图片运用恰当,很清晰的解释了问题和相关内容
- 基于评分标准,我给本博客打分:6分。
- 得分情况如下:
- 正确使用Markdown语法(加1分)
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 二个问题加2分
- 代码调试中的问题和解决过程, 无个问题
- 感想,体会不假大空的加1分
- 点评认真,能指出博客和代码中的问题的加1分
互评对象
本周结对学习情况
20172314方艺雯
20172323王禹涵结对学习内容:软件质量 算法分析 增长函数 大O记法 时间复杂度 空间复杂度
感悟
本学期的第一篇博客,又到当初写博客的时候了(ಥ_ಥ)。一口气学了两章内容,好在两章内容不是很多,随便翻了一下书,发现大部分是栈、队列以及链表之类的,开始系统的学习算法结构与分析。假期里做了几个程序没有让自己忘了太多的内容,捡起来也会容易得多。上学期在程序设计的课上取得满分,所以这学期要保持上学期的精神状态继续学习。作为新大二的学生,我更要为新大一的学弟学妹做个好头。加油!(ง •̀_•́)ง
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 0/0 | 1/1 | 15/15 |
参考资料
20172305 2018-2019-1 《Java软件结构与数据结构》第一周学习总结的更多相关文章
- 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结
20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...
- 《JAVA程序设计》_第一周学习总结
20175217吴一凡 <java程序设计> 第一周学习总结 虽然已经做好了心理准备,但第一周的学习任务着实让我忙了整整三天,还是挺充实的吧.寒假已经在自己的电脑上安装好了虚拟机,我就在我 ...
- 201521145048《Java程序设计管理》第一周学习总结
1. 本周学习总结 学习并了解Java的发展与历史 在网上视频中学习Java 了解并区分JVM JRE JDK 将java与已学语言做比较,发现相同处 2. 书面作业 Q1.为什么java程序可以跨平 ...
- 20172329 2018-2019《Java软件结构与数据结构》第一周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第一周学习总结 在这学期就已经大二了,也已经步入了学习专业课的核心时间,在这个阶段,我们应该了解自己的学习情况,针对自己 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第五周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 本周内容主要为书第九章内容: 查找是在某个项目组中寻找到某一指定目标元素,或者确定 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第七周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第七周学习总结 教材学习内容总结 本周内容主要为书第十一章内容: 二叉查找树(附加属性的二叉树) 二叉查找树是对树中 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第三周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 本周内容主要为书第五章内容: 队列 线性集合(元素从一端加入,另一端删除) 先进先 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第四周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第四周学习总结 教材学习内容总结 本周内容主要为书第六章内容: 列表 有序列表(元素按照元素内在特性进行排序) 无序 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第二周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第二周学习总结 教材学习内容总结 本周内容主要为书第三章和第四章的内容: 第三章(以数组来替代栈的作用) 集合(聚集 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第九周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 本周内容主要为书第十五章内容: 图(结点和结点之间的连接构成) 顶点:结点 边:结 ...
随机推荐
- 小工具:生成半透明背景色的 CSS 代码,不影响子元素透明度
工具:http://leegorous.net/tools/bg-alpha.html 工具介绍:http://leegorous.net/blog/2010/07/29/generate-css-c ...
- Linux中Elasticsearch集群部署
1.下载安装包elasticsearch-6.3.1 安装包自己下载,网上很多 2.安装位置在cd /usr/local/elasticsearch/目录下 3.因为ES使用root权限运行会报错, ...
- ElasticSearch 集群安装,简单使用
http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html https://gith ...
- .Net 面试题 汇总(六)
一.填空题 1.面向对象的语言具有(继承)性.(多态)性.(封装)性. 2.能用foreach遍历访问的对象需要实现 (IEnumberable)接口或声明(GetEnumberator)方法的类型. ...
- Tomcat 8.5 基于 Apache Portable Runtime(APR)库性能优化
Tomcat可以使用Apache Portable Runtime来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成.Apache Portable Runtime是一个高度可移植的库,位于Ap ...
- Windows下MySQL多实例运行(转)
关键字:Windows下MySQL多实例运行 阅读前注意事项: 1.有的版本的data目录不直接放在mysql安装目录下,有可能在:C:\ProgramData\MySQL\MySQL Server ...
- Uber优步北京第一组奖励政策
优步北京第一组: 定义为2015年6月1日凌晨前(不含6月1日)激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机 ...
- hive整合sentry,impala,hue之后权限管理操作
7.Hive授权参考(开启sentry之后,对用户授权用不了,只能针对用户组,grant role testrole to user xxxxxxx; ) 7.1:角色创建和删除 create rol ...
- Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib
下面是使用Intellij 打包jar文件的步骤,之后会有运行jar文件时遇到的错误. 打包完成. ================================================== ...
- VINS(四)初始化与相机IMU外参标定
和单目纯视觉的初始化只需要获取R,t和feature的深度不同,VIO的初始化话通常需要标定出所有的关键参数,包括速度,重力方向,feature深度,以及相机IMU外参$R_{c}^{b}$和$p_{ ...