算法第二章作业

1.对分治法思想的体会

  分治法简要来说分为三大步骤,一是将较大的问题分解成k个若干更小规模的问题,且每个子问题要保证其是一样的;二是要求解每个子问题;三是将二中的子问题的解合并成最初的大问题的解。首先课程即拿二分搜索法求最大子序列和为例子,将一整个数组从中间一分为二,其分别都包含有相同的元素个数,分别从中间位置向左和向右求最大子序列和,再与横跨中间的子序列和做比较,这样相较于穷举法,从数组第一个元素开始加起,再逐一做对比的方式,要快很多。和二分搜索比较类似的还有合并排序法,也是将数组一分为二,然后在两个数组中,各自从左到右逐一对比,小的数放入一个新的数组中,新的数组即是排列好的数组,相比于冒泡排序法那种相邻元素逐个对比的方式,合并排序大大缩小的需要对比的次数,且不需要合并即得出结果,节约了大量的运行时间。在快速排序法中,我们将第一个数组元素作为哨兵元素,逐一比较比它大和小的元素,然后将这个元素放在交界的位置,最后再排序左右两个子序列,这样做也能够大大节约排序所需的时间,总之,分治法的思想能很有效的缩短大问题的解决时间,在面对不同数据规模的问题的时候,选择合适的方法即能够有效的节约资源。

2.结对编程作业汇报

  有助于发现双方在编写代码的时候的一些错误,课后也可以交流一些思想来解决问题。

posted @ 2020-10-03 15:42  鲤红  阅读(100)  评论(0编辑  收藏  举报