算法是我2年前就想 好好学的一门功课,可真的学的时候,发现这门功课我很难静心去学,反复的问自己是不是能搞好算法这块料。
这2年多,一提到算法我就头疼,原因是我喜欢寻找高效的解决方案,但在算法这块,我觉得太高深,我无法理解了书本上的内容,并且我只
用c#语言开发,研究的是面向对象,算法都是从面向对象的角度思考的。我这么说不知道前辈们怎么看,也许我的深度还比较浅,望各路豪
杰多赐教。
今天跟一哥们探讨了下算法是什么,我说算法是数学,有公式,有思维,有一定套路可循。他说是让计算机理解的,可以形式地表现出来,
节省时间,空间复杂度的东西,属于计算机范畴的。他说完之后,我立即同意。但我还认为算法其实还是数学。
继续写,
今天找了点资料贴上来:
算法是研究适合计算机程序实现问题解决的方法。
一般认为,算法是一组明确的、可以执行的步骤的有序集合。"有序集合"说明算法中的步骤是有顺序关系的。
算法中的每一步骤还必须是明确的,模棱两可的步骤不能构成算法。
使用计算机来解决问题的时候,有时会面临多种可能的解决途径。而选择不同的解决途径可能会有不同的问题求解效率。
把算法变成程序,
有许多事情要做。首先要考虑问题中数据的表达,要考虑:如何表达整数序列;
其次将算法过程用程序设计语言中的控制语句来实现(主要是循环控制与条件控制)
最后,要仔细设计与用户的交互(主要是数据的输入与输出)。
在程序实现中,数据的组织(数据结构)与算法是密切相关的、互为依赖的。好的数据结构有可能会导致一个高效率的算法.
PS:以下这是我第三次更新。
准备考软考的软件设计师(一个知识面广,但不深的一门考试),买了软考的教材和辅导书,两本书都有对算法的精彩讲解和典型例题,我觉得这本书比较适合我,我也从 这2
本书中了解到了什么是动态规划法,贪心法,回朔法,但我还需要时间才能应用他们并有非常清晰的解题思路,我是个头脑比较慢的人,只能反复琢磨才能领悟点精髓。现在我
已经上路了,已经很开心了。