最大子序列问题
问题描述:对于一个无序序列q=<a1,a2,a3…an>,存在一个子序列q0=<ai,ai+1,ai+2…aj>,使得该子序列的和最大,求该子序列和的值maxNum。
算法实现:
#include <iostream>
using namespace std;
//算法1,时间复杂度:o(n`3)
int max_subSeq1 (int a[], int len) {
int i, j, k;
int maxNum=0;
int thisNum=0;
for (i=0; i<len-1; i++) {
for (j=i; j<len-1; j++) {
thisNum = 0;
for (k=i; k<=j; k++) {
thisNum = thisNum+a[k];
}
if (thisNum>maxNum) {
maxNum = thisNum;
}
}
}
return maxNum;
}
//算法2,时间复杂度:o(n`2)
int max_subSeq2 (int a[], int len