20162316刘诚昊 《程序设计与数据结构》 第一周学习总结

时间:2022-02-19 10:27:14

学号20162316 2017-2018-2 《程序设计与数据结构》第一周学习总结

教材学习内容总结

第十二章里相比之前的章节更偏向理论方面,何以改善程序算法,何以使算法变得又快又好等等,是这节章节所主要向我们展示的内容。
  • 首先,程序未必是算法。这点在老师给的视频中强调:所谓算法,除了输入输出以外更包含正确性、确定性、可行性和有穷性,缺四者之一都不是算法。而一个好的算法更是要兼具正确、健壮、可读,以及高效率,我们评价一个算法应该从最差效率去考虑。
  • 完成一个任务的方式多种多样,而完成时间取决于我们采取的方式,于程序算法来说,我们要学会并善于对其进行效率分析。
  • 时间复杂度较空间复杂度更长重要,这两种复杂度共同组成算法复杂度。
  • 为了缩短既定目标的时间,优化处理器不如优化算法结构。

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

1.教材中虽然给出了考入算法效率的切入角度,却并没有给出多少实际例子,后来娄老师在上课时举了一些,但是也未涉及一些方法类,于是自己搜集了一些:

  • 例如Collection类的binarySearch方法实现了二分查找。即是在一个有序的数组中直接查看位于数组中间的元素,看一看是否大于要查找的元素。如果是,用同样的方法在数组的前部分继续查找;否则在后部分。这样的方法在一个1024个元素中的数组中只要比较10次以后便可以定位所匹配的元素,而使用线性查找,如果元素存在,平均需要512次比较;如果元素不存在,需要1024次比较才能确认。

2.时间复杂度是怎么去比较的?以时、分、秒去定义吗?但是这又和处理器的优劣有关,那怎么更有效地进行比较呢?

  • 以基本操作次数为度量单位。

3.大O阶的推导。
20162316刘诚昊 《程序设计与数据结构》 第一周学习总结
得到的结果就是大O。

4.算法度量如何度量?
20162316刘诚昊 《程序设计与数据结构》 第一周学习总结

本周结对学习情况

我的结对对象20162326齐立峰 ,很高兴能在新的学期得到班长的帮助,期待新道路的开展。