1、请谈一下你对二分法思想的体会
分治法:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治实质是分解,再合而求之。
二分法一次源于数学领域,其主要应用在二分查找算法上,如二分搜索算法,它充分利用了元素间的次序关系,基本思想:将n个元素分成个数大致相同的两半:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,
如果当前位置arr[k]值等于key,则查找成功;若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high]。
int bsearch(int array[], int low, int high, int target){
if (low > high) return -1;
(二分查找,首要条件是有执行对象,即是这个数组,元素)
int mid = (low + high)/2;
(分,从中间开始)
if (array[mid]> target)
return binarysearch(array, low, mid -1, target);
(中间没查找成功,可先往左/往右)
if (array[mid]< target)
return binarysearch(array, mid+1, high, target);
//if (midValue == target)
return mid;
}
}
二分查找算法的出现,使得对应算法的时间复杂度降低了,最坏也是O(logn),与顺序查找相比,它节约了很多时间。
2、结对编程情况汇报
结对编程,总的来说是交流与合作,互相集想法。和队友编程时,更能容易解决一些难题或者注意到一些细微的问题,队友会及时发现一些错误并纠正过来,一个问题一个人可能需要一分钟来解决,但是两个人的话,会有两种解决办法,或者可以在半分钟内解决好,这个编程过程中是有趣和充实的,而彼此也交流了自己想法,使得在编程过程中不那么枯燥,也会更加受益。