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