第二章作业

1、浅谈一下对二分法思想的体会:

个人认为二分法思想其实体现了数学的逼近过程,优化了解题效率。

二分法是为了减少遍历数组的时间复杂度,但是二分法遍历的数组应该是有序数组。有些问题用二分法解决时不会直接给出有序数组,有时需要我们提取出对应于问题答案的一组数放在数组里并排序。在二分查找里面的主要思想是:(设查找的数组期间为array[low, high])

(1)确定该期间的中间位置K
(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:
a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间为array[low,……,K-1]
b.array[k]<T 类似上面查找区间为array[k+1,……,high]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可。

时间复杂度:O(log2n)。

2、结对编程情况汇报:

在做PTA第二章作业的过程中,我和我的结对队友一起讨论,尤其是在做编程题的时候,虽然我们一起遇到了许多小错误,但是我们都一起慢慢修改代码,最后把题目ac,这个过程真的很充实也很愉快!同时,通过结对编程,我们能够互相督促对方的作业完成情况和学习程度,提高了学习效率。

posted @ 2018-10-10 18:37  嘉兰  阅读(134)  评论(0)    收藏  举报