• 20182318 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结


    20182318 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结

    教材学习内容总结

    查找

    1. 线性查找
    2. 二分查找

    排序

    1. 选择排序
    2. 插入排序
    3. 冒泡排序
    4. 快速排序
    5. 归并排序

    分析查找和排序算法

    比较查找算法

    线性时间复杂度O(n)
    二分查找有对数阶的复杂度,对于大的查找池来说,这非常有效率

    比较排序算法

    f(n)= (n-1)(一个常数n + 另一个常数)=an^2+bn+c

    其中a,b,c等常数不重要,分析中只有n^2有意义

    其他

    快速排序,简单排序,哈希排序,归并排序等

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

    • 问题1:为什么要设哨兵

    • 问题1解决方案:这一过程可以使循环减少一个判断语句,循环次数多了以后就可以显著提高效率

    • 问题2:二分查找是不是一定要比顺序查找效率更高一点呢

    • 问题2解决方案:这个不一定,各有千秋。二分查找有它自身的限制,就是一定要在有序数组中查找,否则会出现错误.
      因此应该在有序数组中使用二分查找,无序数组中使用顺序查找更好

    • 问题3:五种排序的比较

    • 图片

    • 问题4:什么是算法的稳定性

    • 问题4解决方案:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

    • 几种排序算法的稳定性比较博客链接

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

    • 问题1:==,equals和compareTo的区别?
    • 问题1解决方案:
    1. "equals": 比较的是两个字符串中的每个符是否相同,
      例如:a="1243", b="1243",那么a.equals(b)就会返回TRUE,因为a和b两个字符串中的每一个字
      符都相同,如果对a或者b中的任何一个做任何修改,equals()就会返回false。
    2. ”==":比较的是两个字符串是否同时引用的一个地址,
      如果a=new String("abc");b=a;b引用的a, 所以a == b的比较就会返回TRUE。
    3. compareTo(): 这个函数的作用就是对两个字符串按字典排序的方式进行比较,返回两个字符串中第一个不同的字符的ascII码差值。
    • 问题2:什么是归并排序
    • 问题2解决方案:“归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。”
      归并排序为何高效博客链接

    代码托管

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

    上周考试错题总结

    上周无考试。

    结对及互评

    • 结对学习内容
    • 对一些类和程序包的用法和作用的讨论。
    • 对编写代码过程中出现的问题相互讨论解决。
    • 对书上课后题如何编写的讨论。

    点评:

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20182333
      • 结对照片
      • 结对学习内容
        • XXXX
        • XXXX
        • ...
    • 上周博客互评情况

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

    学习还需下真功夫

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    第八周 1388/1000 3/7 22/60

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

    • 计划学习时间:30小时

    • 实际学习时间:20小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Android Camera子系统之Linux C应用开发人员View
    【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,而且在AVD中浏览sdcard的文件
    HDU 2196 Computer(求树上每一个节点到其他点的最远距离)
    HDU 4081 Qin Shi Huang's National Road System 最小生成树
    scala 变量定义,基本操作符
    mybatis or
    Nginx
    hessian协议原理
    同一台电脑上装两个或两个以上的tomcat服务器
    端口号
  • 原文地址:https://www.cnblogs.com/1400694592qq/p/11795389.html
Copyright © 2020-2023  润新知