20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结

Posted 15248252144dzx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结相关的知识,希望对你有一定的参考价值。

20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结

教材学习内容总结

  • 第一章 概述
    1.1软件质量:
    高质量软件的几个特征:

    技术分享图片

    正确性:软件在多大程度上满足其特定需求
    可靠性:软件故障发生频率和危险程度
    健壮性:出错情况下可以得到恰当处理的程度
    可用性:用户学习和执行任务的难易程度
    可维护性:对软件进行修改的难易程度
    可重用性:软件组件可重用于其他软件系统开发的难易程度
    可移植性:软件组件可以在多个计算机环境下使用的难易程度
    运行效率:在不浪费资源的情况下软件完成其目标的程度
    1.2数据结构(计算机存储、组织数据的方式)
    程序=数据结构+算法
    软件=程序+软件工程
  • 第二章 算法分析
    2.1算法效率分析
    算法效率通常用CPU使用时间来表示
    算法分析是从效率的角度对算法进行分析
    算法分析是计算机科学的基础
    2.2增长函数与大O记法
    增长函数:表示问题(n)大小与我们希望最优化的值之间的关系该函数表示了该算法的时间复杂度(CPU的使用时间)和空间复杂度(内存空间)
    算法的渐进复杂度(随着n增长时增长函数的一般性质)
    主要关注函数的主项(即增长速度最快的的那一项)
    渐进复杂度称为算法的阶次
    增长函数的项之间的比较

盘子的数量 15n2 15n 15n2+45n
1 15 45 60
2 60 90 150
5 375 225 600
10 1500 450 1950
100 150 000 4500 154500
1000 15 000 000 45000 15045000
10 000 1 500 000 000 000 450 000 1 5000 450 000
100 000 150 000 000 000 4 500 000 150 004 500 000
1 000 000 15 000 000 000 000 15 000 000 15 000 045 000 000
10 000 000 1 500 000 000 000 000 450 000 000 1 500 000 450 000 000

一些增长函数及其渐进复杂度
| 增长函数|阶次|标记
|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)|n log n|
|t(n)=3n2+5n-2|平方型|
|t(n)= 8n^3+3n2|O(n^3)|立方型|
|t(n)=2^n+18n2+3n|O(2^n)|O(2^n)|指数型|
如果两个算法完成相同任务具有不同的增长函数,比如都是O(n2),那么从运行效率上来说,两者大体上是相等的。

2.3增长函数的比较

教材学习中的问题和解决过程

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

代码调试中的问题和解决过程

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1及原因,理解情况
  • 错题2及原因,理解情况
  • ...

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

点评过的同学博客和代码

xxx

学习进度条

xx

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 075/200 1/1 05/20
第二周 560/500 1/2 13/38
第三周 972/1000 1/4 21/60
第四周 694/1666 1/5 21/90
第五周 1544/3095 1/6 30/90
第六周 600/3627 1/7 30/120

参考资料

1.
2.
3.
4.



































以上是关于20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20172304 2017-2018-2 《程序设计与数据结构》实验五报告

20172329 2018-2019《Java软件结构与数据结构》第一周学习总结

20172328 2018-2019《Java软件结构与数据基础》第一周学习总结

2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结

20172305 2018-2019-1 《Java软件结构与数据结构》第一周学习总结