一.实验题目:
返回一个整数数组中最大子数组的和。
二.实验要求:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
要求程序必须能处理1000 个元素;
每个元素是int32 类型的;
求所有子数组的和的最大值。
三.实验思路:
这次的实验是在上次的基础上改进的,初看上去需要进步的地方不大,但是 仔细想起来,确实难度不小。处理1000个元素,很容易内存溢出;然后每 个元素是int32类型的,这很容易数据溢出。这次的实验着重的要解决这个 问题。
对于前一个处理1000个元素的问题,其实是没有想法的,不知道应该如何 去处理这个问题;
对于后者每个元素是int32 类型的,每次处理两个数相加的时候,后十六位 和后十六位相加,前十六位和前十六位相加并且加上后十六位相加的进位。
四.实验总结:
这次的实验老师主要要求要把思路写出来,看到这道题的时候我们第一个想到的是张翠肖老师,因为以前我们在上计算机导论的时候,张老师就给我们出了一道题,让我们计算阶乘,如果n的值很大的话,我们应该如何去解决这个问题,想当初我们很天真地觉得老师轻视我们的智商,这么简单的问题用一个循环足可以解决所有的问题,但是真正的实践起来却并不是那样。。。
时至今日,我和队友又一次碰见了一样的问题,但是这次我们却是从一开始就是很沉重的心情,因为知道这个实验自己是做不来的,结果又碰见了,闹心的不是一点两点啊。
对于内存溢出,大神们想法是扩充机器的位数,还是不能实现的;
对于数据溢出,上面是有思路的,此处略掉很多字。。。
下面是我和队友: