分而治之 求最大子列和

2021-10-04 20:29:39 字數 945 閱讀 3362

小白乙隻,這個程式想實現輸入乙個陣列,求出最大子列和,能執行但是不對。可否給予我一些指點。

#include

intmax3

(int a,

int b,

int c )

intdivideandconquer

(char list,

int left,

int right )

/*下面是「分 」的過程*/

center =

(left+right)/2

;/*找到中分點*/

/*遞迴求得兩邊子列的最大和*/

maxleftsum=

divideandconquer

(list, left, center)

; maxrightsum=

divideandconquer

(list, center+

1, right)

;/*下面求跨分界線的最大子列和*/

maxleftbordersum=0;

leftbordersum=0;

for(i=center; i>=left; i--

) maxrightbordersum=0;

rightbordersum=0;

for(i=center+

1; i<=right; i++

)/*下面返回「治 」的結果*/

return

max3

(maxleftsum, maxrightsum, maxleftbordersum+maxrightbordersum);}

intmaxsubseqsum3

(char list,

int n )

intlength

(char list)

intmain()

分而治之 最大子列和

2 從中間開始分 if left right int mid left right 2 maxleft mergesort a,left,mid 左邊掃瞄 maxright mergesort a,mid 1,right 右邊掃瞄 利用遞迴的思想對a n 不斷分,分到最小為乙個數,再不斷合併處理 從...

求最大子列和

給定乙個含有n整數的序列,求其最大子列和 即該序列中一段連續子串行和的最大值 大致思路是 定義乙個當前位置之前的序列和的最大值 maxsum 以及當前子串行的和 thissum 每迭代一次比較二者的大小關係,如果maxsum小於thissum,則更新maxsum,否則繼續遍歷。當thissum 0時...

求最大子列和問題

給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。在此方法中用了三個迴圈,第一層是子列左端,第二層是子列右端,裡層為子列的求和。t n o n 3 int thissum maxsum 0 i...