分治比普通递归多了哪步
分治比普通递归多的那一步是【0】。
哪个不是分治
下面这几个里,不算分治的是【0】。
分治求和得多少
把数组一分为二各自求和再相加,区间写成半开区间 [l, r)。运行下面这段程序: #include <algorithm> #include <iostream> #include <numeric> #
分治求最大值
运行下面这段程序: #include <algorithm> #include <iostream> #include <numeric> #include <string> #include
用分治求和
补全 dsum:把区间 [l, r) 从中间切开,两边各自递归求和,再把两个结果加起来。 (本题用 g++ -std=c++17 -O0 编译。)
用分治求最大值
补全 dmax:两边各自求出最大值,再取大的那个。这道题的「合」不是相加,而是取较大的——同一套骨架,换个合并方式就换了用途。 (本题用 g++ -std=c++17 -O0 编译。)
分治结果要和直接算的一样
dsum、dmax 已经写好。和标准库的 accumulate、max_element 比一比:两个都对上输出 两项一致,否则输出 有不一致。 (本题用 g++ -std=c++17 -O0 编译。)
什么是递归树
第 1 步:搬 3 层:一次调用 第 2 步:它要搬两次 2 层 第 3 步:每个 2 层又要搬两次 1 层 第 4 步:每个节点搬一次:共 7 个 h3 h2 h2 h1 h1 h1 h1 递归树画的是【0】。
归并排序递归树有多高
归并排序每次把问题砍一半,递归树的高度大约是【0】。
怎么用递归树估复杂度
用递归树估算复杂度,做法是【0】。