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,这个过程真的很充实也很愉快!同时,通过结对编程,我们能够互相督促对方的作业完成情况和学习程度,提高了学习效率。