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

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

教材学习内容总结

一、查找

1、线性查找:从表头开始,依次将每个值与目标元素进行比较,最后找到目标或者到达表尾发现目标不存在于组中。
2、二分查找:如果查找池中的数据项有序,从表的中间开始查找,如果中间项不是所需值,根据目标与中间元素的大小比较确定元素在哪侧,在该侧继续从中间开始查找,每次排除一半的元素,确定目标元素。(二分查找必须保证数据项有序)

二、排序

1、选择排序:分别将每个值放到排好序的最终位置,从而完成一组值的排序。
平均时间复杂度为O(n2),稳定。
2、插入排序:重复地将一个具体的值插入到表中已有的子序列中,从而完成一组值的排序。每次将每个待排序的元素插入到有序子段中合适位置,直到表中全部元素均有序为止。
平均时间复杂度为O(n2),稳定。
3、冒泡排序:重复地比较表中的相邻元素,如它们呈逆序则交换它们。
平均时间复杂度为O(n2),稳定。
4、快速排序:根据一个任意选定的划分元素来对表进行划分,然后再递归地对划分元素两边的子段进行排序,从而完成对表的排序。
平均时间复杂度为O(nlog2n),不稳定。
5、归并排序:递归地对分表,直到每个子表只含有一个元素为止,然后再将子表按序合并,从而完成对表的排序。
平均时间复杂度为O(nlogn),稳定。

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

  • 问题1:不是很理解有关快速排序这一方法
  • 问题1解决方案:书上介绍的方法是先选择表中的一个元素作为划分元素,我觉得还是以第一个元素作为划分元素更有利于理解。以第一个元素作为枢轴,将后面的元素依次与其比较,较小的放在枢轴前,较大的放在枢轴后。将所有元素都比较结束后,以枢轴为中心将表分成两个部分,每个部分再次重复这一操作。直至每个划分段只有一个元素,递归应用给每一边后,则整个数组有序,从而实现了排序的过程。归并算法中也采取了这一逻辑。

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

  • 问题1:程序13.1中重写了toString方法,不理解为何重写这一方法,对toString方法的掌握不清楚。
  • 问题1解决方案:我先在网上了解了一下toString方法,这一方法的作用是把一个逻辑值转换为字符串,并返回结果。主要是返回结果这一项,在这个重写的方法中,toString返回了姓氏,名字和手机号码,这三个变量原本就是String类型,在重写的方法中直接返回,给新的Contact对象。

代码托管

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

上周考试错题总结

  • 本周的测试答完以后没有个人错题的解析,答完两边都没有,我觉得可能是系统出现了一些问题,错题等这一问题解决后再总结。
  • 有关课上习题的总结
void fun3(int n){
   int i=0,s=0;
    while (s<=n){
        i++;
        s=s+i;
    }
}
  • 这个算法求了从1到n的所有自然数的和,用等差数列求和公式可以得到表达式为s(s+1)/2 < n ,即s2 + s < 2n,留下高次项,可得s2 < n,得到复杂度为O(n^1/2)

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [20162306](博客链接)
- 结对学习内容
    - 查找和排序
    - 有关算法的时间复杂度

其他(感悟、思考等,可选)

本周学习的时间还是不够,这周校庆圆满结束,作为校庆工作人员,我在下周应该会有足够多的时间去学习了,利用好时间补上落下的课程。下周开始要刻意训练自己的动手能力,多敲代码多看书。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 20/20
第二周 100/100 1/2 15/35
第三周 454/554 1/3 15/50

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

posted @ 2017-09-24 17:03  20162305李昱兴  阅读(212)  评论(2编辑  收藏  举报