首页 > 编程语言 > 详细

求数组最大子数组之和

时间:2021-03-14 10:19:16      阅读:21      评论:0      收藏:0      [点我收藏+]

1.实现求数组最大子数组之和的功能代码

maxarray.py

#用来获得最大子数组之和定义成方法也方便后面的单元测试
def max(a):
    sum = max = 0
    for i in range(len(a)):
        sum += a[i]
        if sum < 0:
            sum = 0
        if max < sum:
            max = sum
    if max == 0:#说明a数组内全是负数
        max = a[0]
        for i in range(1,len(a)):
            if max < a[i]:
                max = a[i]
    return max

 

2.单元测试

maxarraytest.py

import unittest
from 数组的最大子数组之和.maxarray import max
class TestDemo(unittest.TestCase):
    def test_out_1(self):
        a = [1,-2,3,-4,5]
        self.assertEqual(max(a),5)
    def test_out_2(self):
        a = [-5,-1,-3,-6,-8]
        self.assertEqual(max(a),-1)

if __name__ == __main__:
    unittest.main()

运行结果:

(1)单元测试正确截图:

技术分享图片

(2)单元测试错误截图:

技术分享图片

 

3.性能分析

利用profile分析相关的独立模块

ncalls:表示函数调用的次数;
tottime:表示指定函数的总的运行时间,除掉函数中调用子函数的运行时间;
percall:(第一个percall)等于 tottime/ncalls;
cumtime:表示该函数及其所有子函数的调用运行的时间,即函数开始调用到返回的时间;
percall:(第二个percall)即函数运行一次的平均时间,等于 cumtime/ncalls;
filename:lineno(function):每个函数调用的具体信息;

运行截图:

技术分享图片

求数组最大子数组之和

原文:https://www.cnblogs.com/jk18/p/14531499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!