1,问题描述
,在数组中,有正数,负数,0,求其最大子数组和吗?
,算法思想:
2,暴力破解
# include//求最大子数组和,暴力破解法,时间复杂度:O (n ^ 3) int maxSubArray (int *, int n); int maxSubArray (int *, int n) { ,,,int 我; ,,,int j; ,,,int k; ,,,int ans =, -100000000; ,,,(小姐:=,0;,小姐:& lt;, n;,我+ +){ ,,,,,,,,(=j 我;,j & lt;, n;, j + +) { ,,,,,,,,,,,int sum =, 0; ,,,,,,,,,,,,(=k 我;,k & lt;=, j;, k + +) { ,,,,,,,,,,,,,,,sum +=, [k]; ,,,,,,,,,,,} ,,,,,,,,,,,如果(sum 祝辞,ans) { ,,,,,,,,,,,,,,,ans =,总和; ,,,,,,,,,,,} ,,,,,,,} ,,,} ,,,return 答; } void 主要(void) { ,,,int 一个[],=,{1,,2,,3,3,5,6,1}; ,,,int count =, sizeof (a)/sizeof (int); ,,,int maxNumber; ,,,maxNumber =, maxSubArray(,,数); ,,,printf (" % d \ n ",, maxNumber); }
结果截图
# include 结果截图