第二章作业及结对编程情况
2018-10-19 09:27 秤字逃 阅读(238) 评论(0) 收藏 举报一、作业情况
第二章作业主要考察的是算法的时间复杂度分析,分治法思想和排序方法。分为判断题,选择题和编程题考察。
在算法的时间复杂度分析上,需要我们对各种算法有一个比较好的掌握,很多时候是记不住的,需要我们思考算法过程来记住那个时间复杂度。而对于分治法也可以使用主规则进行运算。
在编程题第一题中我们很容易发现并不是简单地把书里算法打进去就可以,根据题目的提示我们可以得出,这道题实际上是要我们以二分查找的思想进行求解,根据具体的需求进行一定的调整。而第二题没有明确说使用哪种算法,根据要求的时间复杂度O(nlogn),可以选择归并排序或者快速排序,最终我们选择了贵宾排序。
二、对二分查找的理解
二分查找是一种效率比较高的查找方式,但是有两个个前提,一是查找的序列必须有序,二是存储的结构必须是顺序结构。
二分查找的思路是这样子的:我们假定在某个升序序列中查找某个数,那我们首先将目标数字与这个序列中位的数组进行比较,如果比中位数大,则说明在目标在中位数右边,那我们就可以不管中位数左边的序列,继续在右边的序列重复取中比值操作即可。直到某个中位数与我们寻找的数字相等,便找到了。如果不存在这么一个数,则说明并不存在。
三、结对编程情况
之前打代码都是自己一个人在打,现在尝试了这种新的形式,最直观的感觉是可以减少一些比较低级的错误,比如把 for 循环初始的 i 设为1这种。减少这种不必要的错误提高了做题目的效率,节省了时间。而在选择题和判断题上,之前不懂不是查百度就是问做完的同学,前者可能查不到,后者可能不想跟你解释,现在两个人一起做对有疑问的地方可以一起讨论,感觉还是比较好的(虽然还是有错)。
浙公网安备 33010602011771号