首页 > 编程语言 > 详细

一位数组中求最大子数字

时间:2015-03-27 10:50:35      阅读:315      评论:0      收藏:0      [点我收藏+]

首先,定义一个一位数组a[10]

在数组中,有正数也有负数,我采用累加的办法,将数组从A1开始,A1加完之后再从A2开始

一直累加。每次累加后与之前的和比较,保留最大值,最后求出一个最大值

 

Tn=时间复杂度O(n*n)
int MaxSubSum1(int *arr,int len)
{
int i,j;
int MaxSum = 0;     //每次开始累加的起始位置的循环
for(i=0;i<len;i++)
{
int CurSum = 0;      //向后累加的循环
for(j=i;j<len;j++)
{
CurSum += arr[j];
if(CurSum > MaxSum)//对值进行比较最后保留最大值
MaxSum = CurSum; //将值赋予 MaxSum
}
}
return MaxSum;
}

这是一种常规的算法,对于比较容易解决,但是当数组长了就不是很好解决,而且时间复杂度是N*n

一位数组中求最大子数字

原文:http://www.cnblogs.com/masimian/p/4370876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!