求最大子串行和(C語言)

2021-10-08 22:20:22 字數 794 閱讀 4658

問題:給定整數a1、a2,…,an(可能有負數),求ai~aj之和的最大值。

其中四種演算法,每種執行時間不同

#include

//演算法一,執行時間為o(n3)

intmaxsubsequencesum

(const

int a,

int n)

return maxsum;

}//演算法二,執行時間為(n2)

intmaxsubsequencesum

(const

int a,

int n)

}return maxsum;

}//演算法三,執行時間為o(nlog(n))

intmax3

(a, b, c)

static

intmaxsubsum

(const

int a,

int left,

int right)

for(i = center +

1;i <= right;i++

)return

max3

(maxleftsum, maxrightsum, maxleftbordersum + maxrightbordersum);}

//演算法四,執行時間為o(n)

intmaxsubsequence

(const

int a,

int n)

return maxsum;

}int

main()

求最大子串行和

include using namespace std int maxseqsum const int a,int n o n 2 return s2 int maxseqsum2 const int a,int n o n else if s1 0 return s2 int maxseqsum3...

求最大子串行

1.暴力求解,時間複雜度為n 3 int maxsubarray int a int n return maxsum 2.分治法 將陣列從中間分開,那麼最大子陣列要麼完全再左半邊陣列,要麼完全在右半邊陣列,要麼跨立在分界點上。完全在左陣列 右陣列遞迴解決。跨立在分界點上 實際上是左陣列的最大字尾和右...

求最大子串行和演算法

這是個比較經典的c語言演算法問題。記得,在大二參加c語言比賽的時候,碰到過這個問題。當時就在網上學習了這麼乙個經典演算法。但是到了現在已經有點兒遺忘,今天無意之中又看到了這道題,感覺很親切,而且感覺到這個演算法真的非常經典,所以還是決定收藏在部落格中,希望自己能牢記這個問題。這個演算法用到了動態規劃...