• 第三次软件工程作业——最大连续子数组和(最大子段和)


    1.题目要求

        给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n    例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。   -- 引用自《百度百科》
    

    2.代码的编写

    这个代码的时间复杂度有点高,但是我目前还没想到别的方法,如我想到了其他的方法就贴在下面。
    coding点这里

    3.程序流程图

    4.利用eclipse中的Junit对代码进行测试

    根据上面的程序流程图来选择两组数据,从而来测试程序的正确性。
    这三组数据分别是{7 -1 -2 -3 -2 -5 -1 -2} ,{7 -2 11 -4 13 -5 -5 -2}和{6 -1 -2 -3 1 2 3}
    其代码:

    然后对测试结果分析

    5.总结

    希望下次能把作业做的更好一点吧,毕竟我感觉我和很多同学还差蛮多的。引用单老师的一句话就是“杀人偿命,欠债还钱” 。

    今天研究了一会儿,想到了一个时间复杂度低的方法。

    今天我参考了一下杭电上别人写的代码点这里
    我的代码:

    上一个代码的时间复杂度为O(n2)而这个代码的时间复杂度为O(n);
    来测试一下看看这个代码是否正确(测试代码就不需要重新写啦,只要把调用的函数改一下)
    然后看看测试结果:

  • 相关阅读:
    python面向对象三大特性之一封装
    python面向对象的三大特性之一多态
    python之子类调用父类的两种方式
    python之接口继承
    python之组合与继承的使用场景
    Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks(paper)
    lesson9-小象学院cv
    tips
    C5-fasterrcnn-小象cv-code
    C4-ResNet-TF-小象cv-code
  • 原文地址:https://www.cnblogs.com/jmlkk/p/8669239.html
Copyright © 2020-2023  润新知