求陣列最大子串行的和

2021-07-10 22:51:31 字數 984 閱讀 4880

題目:給出陣列,求子序列的最大和。

分別用一下兩種方法解決。

#include 

// 方法1: 分治法

//時間複雜度 o(nlogn)

int max3(int num1 , int num2 , int num3)

int maxsubsum(int

array,int start, int end)

middle = (start+ end)/2;

//遞迴求解左半部分最大子串行和

maxleftsum = maxsubsum(array, start, middle);

//遞迴求解右半部分最大子串行和

maxrightsum = maxsubsum(array, middle+1, end);

//求解中間部分的最大子串行和

leftbordersum=0,maxleftbordersum=0;

for(i = middle;i>=start;i--)

rightbordersum =0,maxrightbordersum=0;

for (i=middle+1; i<=end; i++)

}return max3(maxleftsum, maxrightsum, maxleftbordersum+maxrightbordersum);

}//方法2 時間複雜度 o(n)

int getmaxsubsum(int

array,int start,int end)

}return maxsum;

}int main(int argc, const

char * argv) ;

//int max = maxsubsum(a, 0, 7);

int max = getmaxsubsum(a, 0, 7);

printf("%d",max);

return

0;}

求陣列的最大子陣列和最大子陣列的和

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。include using n...

求陣列中最大子陣列的和

本篇部落格介紹第二週課上小測 求陣列中最大子陣列的和,使用c 實現。1 include2 using namespace std 3int main 419 int ans 100000 20 再次遍歷,最大值即為最大子陣列的和 21for i 1 i n i 22 ans max ans,a i ...

陣列最大子串行和問題

問題描述 最大子串行 給定一整數序列a1,a2,an 可能有負數 求a1 an的乙個子串行ai aj,使得ai到aj的和最大。例如 整數序列 2,11,4,13,5,2,5,3,12,9的最大子串行的和為 子串行起始下標為 結束下標為 複雜度 o n return 子串行最大和,start 為子串行...