資料結構 求最大子列和

2021-10-03 13:04:23 字數 1050 閱讀 7754

陳越姥姥已經講得很好了:傳送門,我只做記錄方便回顧。

四種演算法:

1. 暴力,演算法複雜度:o(n^3)。

2. 暴力,演算法複雜度:o(n^2)。

3. 分治法(遞迴),演算法複雜度:o(nlogn)。

4. 及時處理,演算法複雜度:o(n)。

#includeint a[100000];

int whoismax(int i, int j, int k)

if(j>=i && j>=k)

if(k>=i && k>=j)

}int fenzhi(int start, int end)

else

}int mid = (start + end) / 2;

zuomax = fenzhi(start, mid);

youmax = fenzhi(mid+1, end);

int kua_zuo_max = 0, kua_you_max = 0;

int kua_zuo_sum = 0, kua_you_sum = 0;

for(int i = mid; i>=start; i--)

}for(int i = mid+1; i<=end; i++)

}zhongmax = kua_you_max + kua_zuo_max;

return whoismax(zuomax, youmax, zhongmax);

}int main(void)

// }

// }

//algorithm 2

// for(int i = 0; i//

// }

// }

//algorithm 3

//max = fenzhi(0, n-1);

//algorithm 4

int thissum = 0;

for(int i = 0; iif(max < thissum)

}printf("%d", max);

return 0;

}

資料結構 最大子列和問題

最大子列和問題 20 分 給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資料特點...

求最大子列和

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

學習筆記 資料結構 演算法 求最大子列和

學習筆記 資料結構 演算法 求最大子列和 一 一般演算法 int maxsum int a,int n if thissum maxsum 時間複雜度為o n 3 二 簡單優化演算法 int maxsum int a,int n 在取子列右端時便計算子列和,少了一層計算子列和的迴圈 時間複雜度為o ...