陳越姥姥已經講得很好了:傳送門,我只做記錄方便回顧。
四種演算法:
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 ...