-
算法第二章作业
分治,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 优点:用分治算法主定理可得时间复杂度为O(nlogn),相同元素的顺序不会颠倒,是稳定排序。 缺点:需要辅助数组,所需空间复杂度为O(n)。 -
第二章作业
请谈一下你对分治法思想的体会 分治算法的基本思想是将一个规模为N的问题,分解成K个规模较小的子问题,这些子问题相互独立且月原问题性质相同。 求解出子问题的解,合并得到原问题的解。二分查找,阶乘计算,归并排序,堆排序、快速排序等都运用了分治法的思想。我在使用分治法时发现一定是先找到最小问题规模时的求解 -
第二章作业
作业要求 请谈一下你对分治法思想的体会 结对编程情况汇报 分治思想的体会 (分解问题-求解-合并子问题) 将一个大问题分为几个小问题进行求解,每个小问题的求解方法相同且与大问题一样。递归求解小问题,即可得问题的解。 结对编程情况 结对编程情况良好,搭档思路清晰,很多时候都比我先get到点,思考问题的 -
算法第二章上机实践报告
一、实践题目名称: 找第k小的数 二、问题描述: 设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a -
第二章作业
1.在数据量小的情况下,分治法在时间效率上的体现并没有太过突出,但涉及到数据量大的情况,分治法能够很好的解决内存和时间的问题,并且可以将解决问题的复杂度降低。 2.我的编程搭档使用的是java语言,我使用的是c++,我认为这能够有效地提高我们对两种编程语言的理解,同时也能提高我们的编程水平。 -
算法第二章作业
1,分治法思想的体会 分治法,就是“分而治之”,把一个问题分成几个子问题,这些子问题和原问题是一样的,只是规模变小了,把子问题求解再整合起来,就把原问题解决了,提高了解决问题的效率而且容易理解。结合递归,代码就可以变得很简单。作业很多例题的解题思路都是差不多的,问题的本质类似。 2,结对编程的情况 -
第二章作业
1.请谈一下你对分治法思想的体会 分治法,顾名思义,就是把问题分成多个相同的子问题,分别进行处理,最后再把所得的结果总和。相比起处理一个庞大的问题,分治法显得更为灵活。 2.结对编程情况汇报 在老师所给的时间里,我们两人并未解决这道问题。最开始是想着投机取巧,写个sort函数直接找出来就完事,但老师 -
第二章作业
1、请谈一下你对分治法思想的体会 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。对于某些处理特别多数据得问题,常规求解过程十分复杂,这时候可以把问题分成许多子问题,再去寻找子问题得解法,还可以将子问题细分 -
算法第二章上机实践报告
要求: 实践报告任选一题进行分析。内容包括: 实践题目名称 问题描述 算法描述 算法时间及空间复杂度分析(要有分析过程) 心得体会(对本次实践收获及疑惑进行总结) 实践题目:2-1 找第k小的数 (25分) 问题描述: 设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出 -
第二章实验报告
实践题目名称:找第k小的数 1.问题描述: 设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a[le