1. 程式人生 > >求最大子陣列的和,以及求該最大子陣列的起始位置和末尾位置

求最大子陣列的和,以及求該最大子陣列的起始位置和末尾位置

int MaxSubArraySum(int a[], int N, int &start, int &end)
{
	int ThisSum, MaxSum, i, j;
	*start = 0;
	*end = 0;
	MaxSum = 0;
	for (i = 0; i < N; ++i)
	{
		ThisSum = 0;
		for (j = i; j < N; ++j)
		{
			ThisSum += a[j];
			if (ThisSum > MaxSum)
			{
				*start  = i;
				*end = j;
				MaxSum = ThisSum;
			}
		}
	}

	return MaxSum;
}
5、此方法的時間複雜度很明顯為(O(N^2))