求解最大子列和问题,有很多方法,最简单粗暴的方法就是找出所有子列并计算出子列和,找出最大子列和,但是这种方法效率十分低。要想高效,快速,巧妙的解出最大子列和,就要考虑用更好的方法。
“分而治之”就是解决这一问题的基本思想,在所有子列中,最大子列和可能整个出现在输入数据的左半部分,也有可能整个出现在右半部分,还有可能跨越输入数据的中部,占据左半部分和有半部分。
前两种情况,我们可以用递归的方式,把左右两半部分多次对分,直至对分至只有两个数据进行比较,依次返回较大子列和,来求出左半部分和右半部分的最大子列和。
第三种跨越左半边和右半边的情况,可以通过求出左半部分最大和(包括左边最后一个元素),右半部分最大和(包括右边第一个元素),然后将这