分治法:
思想:将一个难以直接解决的大问题,划分成一些规模较小的子问题,以便各个击破,分而治之。
求阶过程:(1)划分 (2)求解子问题 (3)合并
启发式规则:
1. 平衡子问题:最好使子问题的规模大致相同。也就是将一个问题划分成大小相等的k个子问题(通常k=2),这种使子问题规模大致相等的做法是出自一种平衡(Balancing)子问题的思想,它几乎总是比子问题规模不等的做法要好。
2. 独立子问题:各子问题之间相互独立,这涉及到分治法的效率,如果各子问题不是独立的,则分治法需要重复地解公共的子问题。
这里关于递归算法的介绍在上一部分https://blog.csdn.net/qq_43236424/article/details/105557620
1、最大子段和问题
给定由n个整数组成的序列(a1, a2, …, a