20172315 2018-2019-1 《程序设计与数据结构》第五周学习总结

20172315 2018-2019-1 《程序设计与数据结构》第五周学习总结

教材学习内容总结

  • 查找是在某个项目组中寻找某一指定目标元素,或者肯定该组中并不存在该目标元素的这样一个过程。对其进行查找的项目组有时也称为查找池(search pool)。
  • 查找分为线性查找和二分查找。
  • 查找池中的项目越多,为了寻找该目标而作出的比较操做次数就越多。
  • 在方法声明中,经过使用static修饰符就能够把它声明为静态的。
  • 此时,含有返回类型和参数类型的方法,就可使用泛型参数了。泛型声明必须位于返回类型以前,这样泛型才可做为返回类型的一部分
  • 线性查找:从该列表头开始依次比较每个值,直至找到该目标元素
  • 二分查找是从排序列表的中间开始查找,若是没有在那个中间元素找到目标元素,则继续查找。
  • 二分查找适用于已拍列的列表
  • 线性查找算法具备线性时间复杂度O(n)。
  • 二分查找具备一个对数算法且具备时间复杂度O(log2n)。
  • 排序是这样一个过程,即基于某一标准,将某一组项目按照某个规定顺序排列。
  • 与查找算法相似,基于效率排序算法一般也分为两类:顺序排序(squential sort),它一般使用一对嵌套循环对n个元素排序,须要大约n2次比较;以及对数排序(logarithmicsort),它对n个元素进行排序一般须要大约nlog2n次比较。与查找算法中同样,在n较小时,这两类算法之间几乎不存在实际差异。
  • 选择排序(selection sort)算法经过反复地将某一特定值放到它在列表中的最终已排序位置,从而完成对某一列值的排序。
    php

  • 插入排序算法经过反复地将某一特定值插入到该列表某个已排序的子集中来完成对列表值的排序。
  • 冒泡排序算法经过重复地比较相邻元素且在必要时将它们互换,从而完成对某个列表的排序。
  • 快速排序算法经过将列表分区,而后对这两个分区进行递归式排序,从而完成对整个列表的排序。
  • 归并排序算法经过将列表递归式分红两半直至每一子列表都含有一个元素,而后将这些子列表归并到一个排序顺序中,从而完成对列表的排序。
  • 基数排序是基于队列处理的。html

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

  • 问题1:对于书上说起的各个排序算法效率的问题有点不太理解
  • 问题1解决方案:
    参考资料
  • 问题2:书上的基数排序只有文字没有图片,不容易理解
  • 问题2解决方案:我在网上找到了一张图片方便理解
    git

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

  • 问题1:pp9.3如何记录时间
  • 问题1解决方案:百度以后:
    参考资料

代码托管

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

上周考试错题总结

  • 错题1及缘由,理解状况

The elements of an _____________ are kept in whatever order the client chooses.算法

A . Ordered list
B . Unordered list
C . Indexed list
D . None of the above
无序列表中的元素按使用者所选择的任意方式排序。数据结构

  • 错题2及缘由,理解状况

The elements of an unordered list are kept in whatever order the client chooses.学习

A . True
B . False
正确答案: A
你的答案: B.net

无序列表中的元素按使用者所选择的任意方式排序。设计

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 书上的内容总结很到位
    • 对于代码上的问题挖掘不太充分
  • 代码中值得学习的或问题:
    • 代码详细明了
    • 代码量较少调试

      点评过的同窗博客和代码

  • 本周结对学习状况
  • 上周博客互评状况

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 0/0 0/0
第二周 800/800 2/2 18/18
第三周 600/1400 3/5 22/40
第四周 700/1300 3/8 22/62
第五周 400/1700 3/11 22/84

参考资料

相关文章
相关标签/搜索