day1
算法引言
算法+数据结构=程序
清晰高效地表达算法
为了控制问题和问题解决过程的复杂度,利用抽象来保持问题的“整体感”
这要求对现实问题进行建模的时候,对算法所要处理的数据,也要保持与问题本身的一致性,不要有太多与问题无关的细节

为什么要研究和学习算法
❖首先,学习各种不同问题的解决方案
有助于我们在面对未知问题的时候,能够根据类似问题的解决方案来更好解决
❖其次,各种算法通常有较大差异
我们可以通过算法分析技术来评判算法本身特性,而不仅仅根据实现算法的程序在特定机器和特定数据上运行的表现来评判它。即使同一个程序,在不同的运行环境和输入数据的情况下,其表现的差异可能也会很大
❖在某些情况下,当我们碰到棘手的难题
得能区分这种问题是根本不存在算法,还是能找到算法,但需要耗费大量的资源
❖某些问题解决需要一些折衷的处理方式
我们需要学会在不同算法之间进行选择,以适合当前条件的要求
对比程序,还是算法?
❖如何对比两个程序?
看起来不同,但解决同一个问题的程序,哪个“更好”?
❖程序和算法的区别
算法是对问题解决的分步描述
程序则是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能产生很多程序

❖比较程序的好坏,有更多因素
代码风格、可读性等等
我们主要感兴趣的是算法本身特性
算法分析主要就是从计算资源消耗的角度来评判和比较算法
今日总结:
对于解决同一个问题,采用高效的算法将节省更多的时间和资源
浙公网安备 33010602011771号