Problem——最大子序列和:
Find the maximum sum in any contiguous subvector of a vector of n numbers.
扩展问题:最大子矩阵和
最大子序列和的解法:
Brute Force: O(n^3)
The Quadratic Algorithms(Dynamic Programming/Memory Searching): O(n^2)
Divide-and-Conquer Algorithm: O(n log n)
A Scanning Algorithm(Greedy Algorithm): O(n)
Principles:
Algorithms design techiques:
1、Save state to avoid recomputation保存状态(空间换时间)
2、Preprocess infomation into data structure预处理
3、Divide-and-Conquer algorithm分治
4、Sanning algorithm贪心
5、Cumulatives(Table)打表
6、Lower bounds。证明自己的算法的复杂度不可能再低(达到下限)
What Does It Matter?——时间复杂度的影响
时空复杂度的估计:
参考
http://baike.baidu.com/view/104946.htm
http://baike.baidu.com/view/540497.htm