20162323 2017-2018-1 《程序设计与数据结构》第2周学习总结
20162323 2017-2018-1 《程序设计与数据结构》第2周学习总结
教材学习内容总结
13.1 查找
有关查找的基本概念
- 查找是在一组数据项中找到指定的目标元素,或是判定组内不存在目标的过程。是在一组项内找到指定目标或是确定目标不存在的过程。
- 查找:线性查找、二分查找
- 在查找目标的过程中进行最少量的比较,完成尽可能高效的查找。
- 查找池:要查找的数据项组。
- 我们实现的这些查找算法都作用于Copmarable对象的数组。
(Comparable接口中包含方法CompareTo,如果对象分别小于、等于或者大于要被比较的对象时,则方法会分别返回小于0、等于0或大于0的一个整数)
线性查找
- 定义:从表头开始查找,依次将每个值与目标元素进行比较,最后,或者找到目标或者到达表尾
二分查找
- 优点:二分查找的每次比较都将遗留的数据排除一半,第二次比较时四分之一,第三次比较时排除八分之一
- 二分查找并不从表的一端开始查找,而是从中间开始。因为表是有序的,所以每次与所选值进行比较后可以减少查找池中的一半元素。余下的一半元素成为包含目标元素的可行候选者。
- 二分查找算法的实现采用的是迭代方法,还可以用递归方式来实现。
13.2 排序
排序的基本概念
- 排序是根据某些标准,将一组数据按确定的次序重排,或为降序或为升序。
选择排序
- 选择排序算法反复地将一个个具体的值放到它最终的有序位置,从而完成一组值的排序
- 选择排序算法的一般策略是:扫描整个表,找到最小值。将这个值与表中第一个位置的值相交换,扫描余下的表,找到最小值,将这个值与表中第二个位置的值相交换,扫描余下的表,找到最小值,将这个值与表的第三个位置的值想交换,对表中每个位置继续这个过程,完成时,表中排序完成。
插入排序
- 插入排序算法反复地将一个个具体的值插入到表的已有序的子表中,从而完成一组值的排序。
- 每次将每个待排序的元素插入到有序子段中的合适位置,直到表中全部元素都有序时为止。
冒泡排序
- 重复地比较表中的相邻元素,如果它们呈逆序则交换它们的次序,从而完成一组值的排序。
- 外层循环得使内层循环中表示最大元素的下标位置减1.
快速排序
- 快速排序算法根据一个选定的划分元素来对表进行划分,然后再递归地划分元素两边的子段进行排序,从而完成对表的排序。
- 对表进行划分,小于划分元素的所有元素放到划分元素的左侧,大于划分元素的所有元素放到它的右侧。最后,再用这个排序的策略(递归地)对两个划分段进行排序。
归并排序
- 递归地对分表,直到每个子表只含有一个元素时为止,然后再将子表排序合并,从而完成对表的排序。
- 递归地将表平分成为两部分,直到每个子表中含有一个元素,然后将这些字表归并为有序表,从而完成一组值得排序。
13.3分析查找及排序算法
考虑最优情形和最差情形,常有助于我们估计算法的期望情形(或平均情形)
13.3.1 比较查找算法
- 最优情形:线性查找,当目标元素位于要查找组中的第一项时,出现最优情形。当目标元素不在组中,必须检查组内的每个元素来确定目标不出现时,出现最差情形。
- 二分查找有对数阶的复杂度,对于大的查找池来说,这非常有效率。
13.3.2 比较排序算法
- 选择排序、插入排序和冒泡排序的平均运行时间复杂度是O(n^2).
- 插入排序要依赖于初始数据的情况。
- 排序算法的最优情形和最差情形。
- 快递排序的关键是选择一个好的划分元素
- 归并排序的最差运行时间复杂度是O(nlogn).
教材学习中的问题和解决过程
- 问题1:查找算法的比较
- 回答1:通常比较算法,就是比较其运行时间,最感兴趣的是当问题大小增大时算法的渐进复杂度。
代码托管
结对及互评
点评模板:
- 博客中值得学习的或问题:
- 写的很详细,值得学习
本周结对学习情况
- [20162322朱娅霖](http://www.cnblogs.com/zyl905487045/)
- 结对学习内容
- 上课讲义学习
其他
这周的主要目标就是好好学习老师上课的ppt,赶紧追上大家的进度,通过小组学习这样的形式,多向学得好的同学请教,有更多机会去锻炼自己的动手能力,但是希望老师能还是稍微放慢上课的速度,因为真的有很多需要去自己理解的东西。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 6/6 | 20/20 | |
第二周 | 258/258 | 5/11 | 17/37 | |
第三周 | 0/0 | 0/0 | 0/0 | |
第四周 | 0/0 | 0/0 | 0/0 |