子陣列之和的最大值

2021-06-21 06:29:52 字數 1030 閱讀 7364

//感謝網友firo

//july、2010.06.05。

//algorithm 1:時間效率為o(n*n*n)

intmaxsubsequencesum1(

const

inta,

intn)  

return

maxsum;  

}  //algorithm 2:時間效率為o(n*n)

intmaxsubsequencesum2(

const

inta,

intn)  

}  return

maxsum;  

}  //algorithm 3:時間效率為o(n*log n)

//演算法3的主要思想:採用二分策略,將序列分成左右兩份。

//那麼最長子序列有三種可能出現的情況,即

//只出現在左部分.

//只出現在右部分。

//出現在中間,同時涉及到左右兩部分。

//分情況討論之。

static

intmaxsubsum(

const

inta,

intleft,

intright)  

maxrightbordersum=0;  

rightbordersum=0;  

for(i=center+1;i<=right;i++)  

intmax1=maxleftsum>maxrightsum?maxleftsum:maxrightsum;  

intmax2=maxleftbordersum+maxrightbordersum;  

return

max1>max2?max1:max2;  

}  //algorithm 4:時間效率為o(n)

//同上述第一節中的思路3、和4。

intmaxsubsequencesum(

const

inta,

intn)  

return

maxsum;  

}   

子陣列之和的最大值

給定乙個陣列,查詢這個陣列的子陣列的最大和 比如 2,5,3,6,4,8,6 輸出最大和8 分析 假設已經找到乙個子陣列的最大和,這個子陣列是從陣列索引i到索引j。可以用如下式子描述,cur max a i j 對於下乙個數,也就是索引為j 1,這個最大和是否 將a j 1 加入cur max,需要...

2 14 子陣列之和的最大值

問題 求陣列的子陣列之和的最大值 解法一 遍歷 include include int maxsum int a,int n if sum maximum maximum sum return maximum int main printf d n maxsum array,5 return 0 解...

2 14 子陣列之和的最大值

問題 求陣列的子陣列之和的最大值 解法一 遍歷 include include int maxsum int a,int n if sum maximum maximum sum return maximum int main printf d n maxsum array,5 return 0 解...