【算法】_011_最大子数组_暴力法
2014-10-01 23:45
246 查看
1、008_maxsubarr_violate.h
2、008_maxsubarr_violate.c
/*************************************************************** *版权所有 (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 /************************************************************** 本程序中出现 4000 的函数的声明 **************************************************************/ 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); }
相关文章推荐
- 算法导论4.1-3~4.1-5最大子数组暴力算法和递归算法的实现和线性时间算法实现
- 算法初步--求最大子数组和【暴力|优化枚举|贪心 】求解
- 【算法】最大连续子数组 (暴力法、分治法、分析法、动态规划法)
- 求最大子数组的和,算法导论之分治递归求解,暴力求解,记忆扫描方法。
- 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
- 算法导论第四章:最大子数组—递归,暴力和线性算法
- 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
- 【算法】寻找K个最大的数组
- 求数组最大子段和的常用算法
- 算法---数组中连续子数组和最大值
- 【算法07】求子数组的最大和
- 求数组中和最大的子数组【算法】
- 算法题13 求子数组的最大和
- [算法题] 求数组的子数组之和的最大值
- [算法题] 求数组的子数组之和的最大值
- 小小c#算法题 - 4 - 子数组最大和
- 算法-数组:找出符合某条件的最大矩形区域
- 每天学习一算法系列(5)(已知两个数组,数组里的元素有正有负,但是都是按照从小到大已经排好序,要求用尽可能小的时间复杂度编写一算法求出两个数组的最大交集)
- [算法题] 求数组的子数组之和的最大值