C语言求连续最大子数组和的方法
更新时间:2014年09月17日 12:08:11 投稿:shichen2014
这篇文章主要介绍了C语言求连续最大子数组和的方法,包含了数组的常见操作及相关技巧,需要的朋友可以参考下
本文实例讲述了C语言求连续最大子数组和的方法,是非常实用的技巧。分享给大家供大家参考。
具体实现方法如下:
#include <iostream>
using namespace std;
int array[] = {1, -2, 3, 10, -4, 7, 2, -5};
//int array[] = {-10, -1, -2, -3, -4, -5};
const int size = sizeof array / sizeof *array;
int maxSubArray(int *array, int size)
{
int max = -(1 << 31);
int sum = 0;
int index = 0;
while (index < size)
{
sum += array[index];
if (sum > max)
{
max = sum;
cout << "max: " << max << endl;
}
if (sum < 0)
sum = 0;
index++;
}
return max;
}
int main()
{
int index = maxSubArray(array, size);
cout << "index: " << index << endl;
}
希望本文所述对大家C程序算法设计的学习有所帮助。
相关文章
计时器的time_t和clock_t 的两种实现方法(推荐)
下面小编就为大家带来一篇计时器的time_t和clock_t 的两种实现方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-10-10
WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解
这篇文章主要介绍了WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数,有助于读者更好的理解windows程序的消息机制,需要的朋友可以参考下2014-07-07
用C实现PHP扩展 Image_Tool 图片常用处理工具类的使用
该扩展是基于ImageMagick基础实现的,图片操作调用的是ImageMagick API2013-04-04


最新评论