【算法】_011_最大子数组_暴力法

来源:互联网 发布:mysql开发培训学校 编辑:程序博客网 时间:2024/05/16 09:23

1、008_maxsubarr_violate.h

/****************************************************************版权所有 (C)2014,长沙铁信交通科技有限公司。**文件名称:008_maxsubarr_violate.h*内容摘要:暴力法求取最大子数组*其它说明:*当前版本:V1.0*作   者:伍定湘*完成日期:2014年9月26日**修改记录1:*   修改日期:2014年9月26日*   版本号:V1.0*   修改人:伍定湘*   修改内容:创建***************************************************************/#ifndef _MAXSUBARR_VIOLATE_H_ //防止头文件被重复引用#define _MAXSUBARR_VIOLATE_H_/**************************************************************头文件引用**************************************************************/#include "typedef.h"//引入内置类型重定义/**************************************************************相关宏定义**************************************************************//**************************************************************相关结构体定义**************************************************************/#ifndef _MAXSUBARR_TYPEDEF_ //防止头文件被重复引用#define _MAXSUBARR_TYPEDEF_typedef struct{    INT32 iOffsetMaxBegin;    INT32 iOffsetMaxEnd;    INT32 iSumMax;}MaxSubArrTypedef;#endif/**************************************************************本程序中出现的函数的声明**************************************************************/void maxsubarr_violate(INT32 aTarget[], const INT32 iArrLen);#endif


2、008_maxsubarr_violate.c

/****************************************************************版权所有 (C)2014,长沙铁信交通科技有限公司。**文件名称:008_maxsubarr_violate.c*内容摘要:暴力法求取最大子数组*其它说明:*当前版本:V1.0*作   者:伍定湘*完成日期:2014年9月26日**修改记录1:*   修改日期:2014年9月26日*   版本号:V1.0*   修改人:伍定湘*   修改内容:创建***************************************************************//**************************************************************头文件引用**************************************************************/#include "typedef.h"//引入内置类型重定义#include "008_maxsubarr_violate.h"//引入内置类型重定义#include <stdio.h>/**************************************************************全局变量定义**************************************************************//**************************************************************函数实现**************************************************************//***********************************************************************功能描述:暴力法求取最大子数组*输入参数:aUnsorted - 目标数组*        iArrLen - 目标数组的长度*输出参数:*返回值:*其它说明:*修改日期           版本号         修改人        修改内容* ---------------------------------------------------------------------*2014年9月26日      V1.0          伍定湘        创建***********************************************************************/void maxsubarr_violate(INT32 aTarget[], const INT32 iArrLen){    INT32 iOffsetBegin = 0;    INT32 iOffsetEnd;    INT32 iOffset;    INT32 iSum;    MaxSubArrTypedef msaResult = { 0, 0, 0 };    for (; iOffsetBegin < iArrLen; iOffsetBegin++)    {        for (iOffsetEnd = iOffsetBegin + 1; iOffsetEnd < iArrLen; iOffsetEnd++)        {            iSum = 0;            for (iOffset = iOffsetBegin; iOffset <= iOffsetEnd; iOffset++)//注意:请勿遗漏等号            {                iSum += aTarget[iOffset];            }            if (iSum > msaResult.iSumMax)            {                msaResult.iSumMax = iSum;                msaResult.iOffsetMaxBegin = iOffsetBegin;                msaResult.iOffsetMaxEnd = iOffsetEnd;            }        }    }    printf("iSumMax = %d\n", msaResult.iSumMax);    printf("iOffsetMaxBegin = %d\n", msaResult.iOffsetMaxBegin);    printf("iOffsetMaxEnd = %d\n", msaResult.iOffsetMaxEnd);}


0 0