第2个回答 2011-06-26
还是 穷举法,不过 计算和的算法可以稍微优化一下,不必段内的每一个元素都相加一遍。
比如数组 a={1,5,77,1,2,664,5,6,77,8,98,9,}
假设给的固定长度是len= 5,那么第一次,从数组下标0开始到4,不得不每一个都加一遍,计算出第一段的总和 sum_max=86;并记住此时段落的和 sum_current=86;
从数组第二个元素开始i=1,计算第二个段落的和 就不需要全部加起来了,注意一下第一段和第二段只有 两个元素不同,所以,第二段的和sum 等于 sum0-a[i-1]+a[len+(i-1)]=749,然后把这个和跟第一段的sum_max比较,将较大的和 赋给sum_max,同时更新sum_current=第二段的和(749);如此直到最后一个段落。
总的思想是减少每段的加减法次数,这样当计算大量数据的时候就很有优势了
第3个回答 2011-06-27
我归纳的,可以参考下!过程比较漫长,得一步一个脚印
VC之路
一:第一阶段
C语言-------《C语言设计》 作者:谭浩强
二:第二阶段
C++ Primer, 4rd Edition
(入门类:
C++ Primer, 4rd Edition
Thinking in C++, 2nd Edition
The C++ Standard Library: A Tutorial and Reference
进阶类:
The C++ Programming Language, Special Edition
The Design and Evolution of C++
Inside C++ Object Model
C++ Templates: The Complete Guide
STL 源码剖析
Generic Programming and the STL
Modern C++ Design: Generic Programming and Design Patterns Applied
应用技巧类:
Effective C++, 2nd Editon
More Effective C++
Exceptional C++
More Exceptional C++
Effective STL
Ruminations on C++)
三:第三阶段
API/SDK------------- 《windows程序设计》(Jeff Prosise)
四:第四阶段
MFC----《VC++技术内幕》、《深入浅出MFC》
及视频教程孙鑫 VC++6.0
五:第五阶段
COM/DCOM/ATL/COM+---------《COM技术内幕》
1. 注:前提具备了一定的数学,数据结构及算法,操作系统等基础知识,学好C++是很关键的,尤其要理解清楚OOP思想。