# 20162312 2017-2018-3 《程序设计与数据结构》第3周学习总结

教材学习内容总结

学习目标

  • 探讨线性及二分查找算法。
  • 探讨选择、插入、冒泡、快速及归并排序算法。
  • 讨论算法的复杂度分析技术。

具体内容

  • 查找 查找是在一组数据项中找到指定的目标元素,或是判定组内部存在目标的过程。

  • 线性查找 线性查找是从一端开始以线性的方式扫描查找池。

  • 二分查找 二分查找算法借助于查找池中数据的有序性,在每次比较时去除查找池中的大部分元素。

  • 排序 排序是根据某些标准,将一组数据项按确定的次序重排,或为升序或为降序。

  • 选择排序 算法重复这样的过程,分别将每个值放到排好序的最终位置,从而完成一组值的排序。

  • 插入排序 算法重复地将一个具体的值插入到表中已有序的子序列中,从而完成一组值的排序。

  • 冒泡排序 算法重复地比较表中的相邻元素,如果他们呈逆序则交换它们。

  • 快速排序 算法根据任意选定的划分元素来对表进行划分,然后再递归地对划分元素两边的子段进行排序,从而完成对表的排序。

  • 归并排序 递归地对分表,知道每个子表只含有一个元素时为止,然后再将子表按序合并,从而完成对表的排序。

  • 希尔排序 把一个长序列分割为K个短序列进行高效的直接插入排序,形成一种“基本有序”的顺序; 再调用直接插入排序算法,对全体记录进行一个高效的排序。

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

  • 问题1:对归并排序的复杂度计算不是特别理解。
  • 问题1解决方案:我在网上查找了归并排序复杂度计算的相关资料:

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

代码托管

结对及互评

本周结对学习情况

  • 20162324

  • 结对学习内容

    • 进行了查找排序方面的讨论

思考

对于查找排序的很多代码还要多看。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 6/6
第二、三周 403/403 2/3 14/20

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:5小时

  • 实际学习时间:6小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-09-24 19:59  20162312张家铖  阅读(115)  评论(2编辑  收藏  举报