除錯經驗 求最大子列和的兩種普通演算法的比較

2021-09-27 17:33:09 字數 690 閱讀 1285

給出乙個陣列(可看成乙個數列),求其最大子列和(規定最大子列和的最小值為0)。

為了除錯這個程式,熬夜花費了近4個小時。好可怕!好在終於出結果了。中間的各種除錯錯誤暫且略過。「只說不練假把式」,這句話確時有道理!

本程式做了擴充套件,適用於雙精度資料型別。

#include#include#include#define maxk 1e7/* 重複執行次數*/

typedef double (*p)(double);

double f1(double arr);

double f2(double arr);

double calculatetime(p f,double a);

int n; //存入陣列的資料個數

求最大子列和問題兩種演算法比較

給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。很容易想到一種最暴力的方式,那就是逐個逐個的累計,從i 0到i n,總共需要n次大迴圈,並且對...

最大子段和的兩種解法

1.貪心和動態規劃 實質一樣。前面和sum i 1 0sum 0 sumi 1 0就丟掉,然後加上a ia i ai 就是以a ia i ai 結尾的最大子段和。2.分治法。遞迴到l r l rl r時,顯然最大子段和是a ia i ai 對於區間 l,r l,r l,r 我們需要維護4個變數。1....

求最大子列和的四種演算法

問題描述 有乙個陣列有正有負,問起最大的連續子列的和是多少。求最大子列和 a1,a2,a3.an 方法1,暴力搜尋 int maxsubseqsum1 int a,int n return max int maxsubseqsum2 int a,int n return max 分治法 int ma...