码迷,mamicode.com
首页 > 编程语言 > 详细

求最大子数组(结对开发)

时间:2016-03-26 17:02:08      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

结对伙伴:

纪烈翔

博客名:我们都是小怪兽

链接:http://www.cnblogs.com/qwer113/

 

 

设计思想:

1:随机输入一个数组

2:用动态规划求出该数组的最大子数组的和

3:定义一个结构体,当找到该最大子数组时,记录该数组的开始和结束

4:输出

结对开发过程:

技术分享

 

程序源代码:

//动态规划 
//2016/3/23
#include "iostream"
using namespace std;

#define N 100

typedef struct data
{
    int kaishi;
    int jieshu;
    int value;
}data;


int main()
{
    int  num = 0;
    int A[N];
    cout << "任意输入一个数组:";
    while (true)
    {
        cin >> A[num];
        num++;
        if (getchar() == ‘\n‘)
        {
            break;
        }
    }
    data Start;
    data All;
    //初始化
    Start.kaishi = All.kaishi = 0;
    Start.jieshu = All.jieshu = 0;
    Start.value = All.value = A[0];

    //动态规划,求出最小子数组的和以及最小子数组开始和结束的位置
    for (int i = 1; i < num; i++)  //从前向后遍历
    {
        if (A[i] > Start.value + A[i])
        {
            Start.value = A[i];
            Start.kaishi = i;
            Start.jieshu = i;
        }
        else
        {
            Start.value += A[i];
            Start.jieshu = i;
        }
        if (Start.value > All.value)
        {
            All = Start;
        }
    }
    

    cout << "和最大的最小子数组为:" << endl << "从第" << All.kaishi + 1 << "个数开始,第" << All.jieshu+ 1 << "个数结束" << endl << "和为:" << All.value << endl;//输出
    return 0;


}

运行截图:

技术分享

技术分享

技术分享

项目计划总结:

技术分享

时间记录日志:

技术分享

 缺陷记录日志:

技术分享

 

求最大子数组(结对开发)

标签:

原文地址:http://www.cnblogs.com/qwer112/p/5323116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!